初学者问题......
define("$a",365);
与$a = 365;
有何不同?
谢谢!
JDelage
答案 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。
这样做的原因是它可能使确定常量定义的位置变得更加困难,并且更难以避免名称冲突。