定义像
这样的变量有什么不同define('SITENAME', "My Site");
和
$sitename = "My Site";
哪种方式更好地定义配置变量(例如站点名称/网址等)? 感谢。
答案 0 :(得分:5)
这是constant:
的定义define('SITENAME', "My Site");
您无法更改该值,也不会使用$
前缀来引用该值。一般来说,它与变量没有任何关系。
此是一个变量:
$sitename = "My Site";
对于在执行PHP脚本期间不会发生变化的值(例如某些配置参数),定义常量可能更好。此外,常量具有全局范围(您不能,也不需要,使它们global
)。
另一方面,请记住,您不能迭代一堆常量,因为您可以迭代一组值。例如,您无法传递$config
数组并从中读取多个值,而无需事先知道您感兴趣的值。
通常,常量用于可能影响整个应用程序行为的选项,例如:
define('DEBUG', 1);
对于其他情况,变量更方便,因此即使技术上它们的值在应用程序运行期间保持不变,它们也会被普遍使用。
答案 1 :(得分:3)
前者是常量的定义,后者是变量的定义。前者不能再在运行时更改(至少不是标准安装),而后者可以。
因此define
可能更适合配置,因为这些值在脚本运行时不会改变。
答案 2 :(得分:0)
不同之处在于“define”-function不是用于定义变量的常量。
变量具有更改值的能力,但常量在代码中保持不变。
答案 3 :(得分:0)
define()似乎是常量,其中$ name用于变量: http://php.net/manual/en/function.define.php
答案 4 :(得分:0)
define用于定义CONSTANTS。那些“无法改变”。
第二个用于定义变量。是使程序有效的最常用方法。
在我看来,定义配置设置最好使用常量,将它们放在一个配置文件中以便于访问。
更多信息:
变量:http://php.net/manual/en/language.variables.php 常数:http://php.net/manual/en/language.constants.php