2011-03-28 35 views
1

是在什么样定义PHP - 定义变量的不同方法?

define('SITENAME', "My Site"); 

$sitename = "My Site"; 

哪种方式更好的变量来定义配置变量(如网站名称/网址等)的区别? 谢谢。

+0

添加到答案,常量具有全局范围,而变量不默认 – 2011-03-28 22:23:24

回答

5

这是一个constant的定义:

define('SITENAME', "My Site"); 

你不能改变的价值,你不要指它带有$前缀。一般来说,它与变量完全没有任何关系。

是一个变量:

$sitename = "My Site"; 

对于那些不希望你的PHP脚本的执行过程中更改值(例如一些配置参数),它可能是更好的来定义常量。此外,常量具有全局范围(您不能也不需要使它们成为global)。

另一方面,请记住,您不能迭代一堆常量,因为您可以迭代一组值。例如,您不能传递$config数组并从中读取多个值,而无法预先知道您感兴趣的值。

通常常量用于可能影响整个应用程序的行为,例如选择:

define('DEBUG', 1); 

对于其他情况下,变量是更方便,使他们常用的,即使技术上它们的值在应用程序运行期间不变。

0

区别在于“define”函数不是用于定义常量的变量。

一个变量有能力改变数值,但常数通过代码保持不变。

3

前者是不变的定义,一个变量后者的定义。前者不能在运行期间更改(至少不是在标准安装中),而后者可以。

因此define可能更适合于配置,因为这些值在脚本运行时不会改变。