在PHP中的一个常量一旦被定义,就不能再改变或者取消定义;常量有预定义常量(内部常量),和PHP默认定义的常量,当然也可以自定义常量。
以下是其中几个预定义常量:(完整预定义常量,请参阅PHP手册)
TRUE ,该常量是真值(true),为真(成立)。
FALSE ,该常量是伪值(false),为假(不成立)。
PHP_VERSION ,该常量是当前PHP程序的版本号,如 “5.2.17”。
PHP_OS ,该常量是当前执行PHP程序解析器的操作系统名称,如 “Linux”。
DIRECTORY_SEPARATOR ,表示路径分隔符,在Windowns上为“”,Linux上为“/”。
以下是其中几个PHP默认常量:
E_ERROR ,这个常量指到最近的错误处。
E_WARNING ,这个常量指到最近的警告处。
E_PARSE ,这个常量为解析语法有潜在问题处。
E_NOTICE ,这个常式为发生不寻常但不一定是错误处。例如存取一个不存在的变量。
PHP 向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。
PHP有几个称为“魔术常量”的常量,它们的值随着它们在代码中的位置改变而改变。例如 “__LINE__ ”的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写(但一般作大写),如下
“__LINE__” 文件中该常量所在的行号。
“__FILE__” 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。__FILE__ 还包含了一个绝对路径(如果是符号连接,则是解析后的绝对路径)。
“__DIR__” 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增)
“__FUNCTION__” 函数名称,自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。
“__CLASS__” 类的名称,自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。
“__METHOD__” 类的方法名,返回该方法被定义时的名字(区分大小写)。
“__NAMESPACE__” 当前命名空间的名称(大小写敏感),这个常量是在编译时定义的。
当然在程序写作时,以上的默认常量是不够用。define() 的功能可以让我们自行定义所需要的常量。见下例:
1234 <?php define('CONSTANT', '你好!'); echo CONSTANT; ?>
常量名和其它任何 PHP 标签遵循同样的命名规则。合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。
常量默认为大小写敏感,按照惯例常量标识符总是大写的,在脚本执行期间该值不能改变。
定义常量和定义变量的区别:
常量前面没有美元符号($)
常量只能用 define() 函数定义,而不能通过赋值语句
常量可以不用理会变量范围的规则而在任何地方定义和访问
常量一旦定义就不能被重新定义或者取消定义
常量的值只能是标量