PHP - 什么是常量,它们是良好的实践,它们与变量有何不同?

时间:2010-12-13 15:19:40

标签: php

初学者问题......

define("$a",365);$a = 365;有何不同?

谢谢!

JDelage

4 个答案:

答案 0 :(得分:5)

如果您定义常量define("YEAR",365);,则无法在执行期间更改它,因此YEAR将始终为365无米。另一方面,变量可以在脚本执行期间更改其值,并且它们具有本地范围,这意味着它们仅在声明它们的函数文件中可用。常量具有全局范围,可以从整个脚本访问它们。

http://php.net/manual/en/language.constants.php

http://planetozh.com/blog/2006/06/php-variables-vs-constants/

答案 1 :(得分:2)

常量用于在程序运行时期间不会更改的值。它们不存储在内存中。

好的做法是将稍后可能更改的静态参数放在文件顶部的常量中,以便在必要时找到并轻松更改它们,而不是查找/替换所有内容。

另一个:常量应该总是在CAPITAL_LETTERS中,所以很明显它是一个常数。

答案 2 :(得分:2)

当您想要一个永不改变的全局可访问值时,可以定义常量。例如,您可以为网站编辑器定义一个常量 - 必须出现在很多页面上,如果您的公司雇用了不同的网站编辑器,那么这将是一个严重的PITA。

所以,

define('WEBEDITOR','Tom Jones');

然后你需要输出'Tom Jones',只需回复WEBEDITOR。

变量就是:变量。它改变了。

答案 3 :(得分:0)

常量的值无法更改。

在大多数语言中,命名常量通常被认为是不好的做法(编译条件除外 - PHP不使用,被解释 - 或者如果确保它们位于中心位置,例如在配置文件中)所以最好不要过度使用它们,而是尽可能使用class constants

这样做的原因是它可能使确定常量定义的位置变得更加困难,并且更难以避免名称冲突。