2010-12-13 71 views

回答

5

如果你定义常量define("YEAR",365);在执行期间,你不能改变它,以便今年将永远是365米没有什么。另一方面,变量可以在脚本执行期间更改它们的值,并且它们具有局部范围,这意味着它们仅在它们声明的函数文件中可用。常量具有全局作用域,可以从整个脚本中访问它们。

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

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

+0

我看到了 - 它就像是java常量,这很有道理,我只是从来没有使用它们,所以我不知道它是什么。谢谢。 – JDelage 2010-12-13 15:27:10

2

常量是为了用于该程序运行过程中不改变的值。它们不存储在内存中。

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

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

2

当您想要一个永不改变的全局可访问值时,可以定义常量。例如,您可以为网站编辑器定义一个常量,这些常量必须出现在很多页面上,并且如果贵公司聘请了不同的网站编辑器,那么这个PITA就会发生变化。

所以,

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

然后徘徊无论你需要输出 '汤姆·琼斯',只是回声WEBEDITOR。

一个变量,就是那个:变量。它改变。

+0

常量总是具有全局范围? – JDelage 2010-12-13 15:37:30

+1

@JDelage:在PHP中,是的,除非它们是类常量。由于您似乎在学习PHP,因此您应该知道在线手册非常全面。在这里检查常量:http://ca2.php。net /常量 – dnagirl 2010-12-13 17:55:17

0

常数的值不能改变。

命名常数通常被认为是不好的做法在大多数语言(除编译条件语句的情况下 - 这PHP不使用,被解释 - 或者,如果它是有保证的,他们都集中在市中心,如在配置文件中),所以最好不要过度使用它们,而应尽可能使用class constants

其原因在于,它可能会使确定常量的位置变得更加困难,并且更难避免名称冲突。

+3

但是,使用常量作为配置值是可以接受的。只要你把它们全部定义在一个地方。这对于任何可能位于不同服务器上的大型应用程序都很重要,并且需要一种方法来查找大量服务器特定的值,这些值会根据服务器的不同而发生变化。就像任何事情一样,你可以滥用它们。但是,如果你正确使用它们,它可以是一个真正的节省时间。 – DampeS8N 2010-12-13 15:31:57

+0

@ DampeS8N:的确如此。我会编辑说通常不好的做法。我认为这是一个普遍的概念。 – webbiedave 2010-12-13 15:33:09

+0

他们被认为是不好的做法,因为他们是全球性的? – JDelage 2010-12-14 05:55:06

相关问题