是在什么样定义PHP - 定义变量的不同方法?
define('SITENAME', "My Site");
和
$sitename = "My Site";
哪种方式更好的变量来定义配置变量(如网站名称/网址等)的区别? 谢谢。
是在什么样定义PHP - 定义变量的不同方法?
define('SITENAME', "My Site");
和
$sitename = "My Site";
哪种方式更好的变量来定义配置变量(如网站名称/网址等)的区别? 谢谢。
这是一个constant的定义:
define('SITENAME', "My Site");
你不能改变的价值,你不要指它带有$
前缀。一般来说,它与变量完全没有任何关系。
这是一个变量:
$sitename = "My Site";
对于那些不希望你的PHP脚本的执行过程中更改值(例如一些配置参数),它可能是更好的来定义常量。此外,常量具有全局范围(您不能也不需要使它们成为global
)。
另一方面,请记住,您不能迭代一堆常量,因为您可以迭代一组值。例如,您不能传递$config
数组并从中读取多个值,而无法预先知道您感兴趣的值。
通常常量用于可能影响整个应用程序的行为,例如选择:
define('DEBUG', 1);
对于其他情况下,变量是更方便,使他们常用的,即使技术上它们的值在应用程序运行期间不变。
区别在于“define”函数不是用于定义常量的变量。
一个变量有能力改变数值,但常数通过代码保持不变。
定义()似乎是常数,当作为$ name是变量: http://php.net/manual/en/function.define.php
前者是不变的定义,一个变量后者的定义。前者不能在运行期间更改(至少不是在标准安装中),而后者可以。
因此define
可能更适合于配置,因为这些值在脚本运行时不会改变。
define用于定义CONSTANTS。那些“不能改变”的。
第二个用于定义变量。制作程序是最常用的方式。
在我看来,定义配置设置最好是使用常量,把它们放在一个单独的配置文件中进行简单访问。
更多信息:
变量:http://php.net/manual/en/language.variables.php 常量:http://php.net/manual/en/language.constants.php
添加到答案,常量具有全局范围,而变量不默认 – 2011-03-28 22:23:24