常量是简单值的名称或标识符。 在脚本执行过程中,常量值不能改变。 默认情况下,常量是区分大小写的。 按照惯例,常量标识符总是大写的。 常数名称以字母或下划线开始,后跟任意数量的字母,数字或下划线。 如果已经定义了一个常量,它永远不能被改变或者未定义。
要定义一个常量,可使用define()
函数,并指定常量名称和它的值。 与变量不同,常量不需要有一个美元符号($
)。 如果希望动态获取常量名称,也可以使用函数constant()
来读取常量的值。
constant()函数
如名称所示,该函数将返回常量的值。
当想想检索一个常量的值时,但是不知道它的名字这就很有用了,即它存储在一个变量中,或者由一个函数返回。参考以下示例 -
<?php
define("MINSIZE", 50);
echo MINSIZE;
echo constant("MINSIZE"); // 与上一行代码效果相同
?>
标量数据(布尔值,整数,浮点数和字符串)可以包含在常量中。
常量和变量的区别
- 在一个常量之前书写一个美元符号(
$
)不是必须的,而变量则必须书写一个美元符号。 - 常量不能通过简单赋值来定义,它们只能使用
define()
函数来定义。 - 可以在任何地方定义和访问常量,而不考虑变量范围规则。
- 一旦常量被设置,则不会重新定义或未定义。
有效和无效的常量名称
// 有效的常量名称
define("ONE", "first thing");
define("TWO2", "second thing");
define("THREE_3", "third thing");
// 无效的常量名称
define("2TWO", "second thing");
define("__THREE__", "third value");
PHP魔术常量
PHP为它运行的任何脚本提供了大量预定义的常量。
有五个魔术常量会根据它们的使用位置而变化。 例如,__LINE__
的值取决于脚本中使用的行。 这些特殊的常量是不区分大小写的,如下所示 -
下面给出几个“魔术”的PHP常量 -
编号 | 常量 | 描述 |
---|---|---|
1 | __LINE__ |
在文件中的当前行号 |
2 | __FILE__ |
文件的完整路径和文件名。 如果在include 中使用,则返回包含文件的名称。 从PHP 4.0.2 开始,__FILE__ 总是包含一个绝对路径,而在旧版本中它包含了在某些情况下的相对路径。 |
3 | __FUNCTION__ |
函数的名称。(在PHP 4.3.0 中添加)从PHP 5 开始,此常量返回声明的函数名称(区分大小写)。 在PHP 4 中,它的值始终是小写的。 |
4 | __CLASS__ |
类的名称。(在PHP 4.3.0 中添加)从PHP 5 开始,这个常量返回声明的类名(区分大小写)。 在PHP 4 中,它的值始终是小写的。 |
5 | __METHOD__ |
类方法名称。返回(在PHP 5.0.0 中添加)在声明方法的名称(区分大小写)。 |