PHP - 定义变量的不同方法?

时间:2011-03-28 22:18:23

标签: php

定义像

这样的变量有什么不同
define('SITENAME', "My Site");

$sitename = "My Site";

哪种方式更好地定义配置变量(例如站点名称/网址等)? 感谢。

5 个答案:

答案 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