PHP 常量类型
常量是指一个简单值的名称或标识符。常量值在脚本执行过程中不能改变。默认情况下,常量是区分大小写的。按照惯例,常量标识符通常都是大写的。常量名称以字母或下划线开头,后面可以是任意数量的字母、数字或下划线。一旦定义了一个常量,它就不会再发生变化或被取消定义。
要定义一个常量,你必须使用define()函数,要获取常量的值,只需指定其名称即可。与变量不同,你不需要在常量前加上$符号。如果你希望动态获取常量名称,也可以使用constant()函数来读取常量的值。
constant()函数
顾名思义,这个函数会返回常量的值。
当你想要检索常量的值,但不知道它的名称时,比如它存储在一个变量中或由一个函数返回时,这个函数就非常有用。
constant()示例
<?php
define("MINSIZE", 50);
echo MINSIZE;
echo constant("MINSIZE"); // same thing as the previous line
?>
仅标量数据(布尔值、整数、浮点数和字符串)可以包含在常量中。
常量和变量之间的区别如下
- 在常量之前不需要写美元符号(
$
),而在变量之前必须写美元符号。 -
常量不能通过简单赋值定义,只能使用define()函数定义。
-
常量可以在任何地方定义和访问,不受变量作用域规则的限制。
-
一旦常量被设置,就不能重新定义或取消定义。
有效和无效的常量名
// Valid constant names
define("ONE", "first thing");
define("TWO2", "second thing");
define("THREE_3", "third thing");
define("__THREE__", "third value");
// Invalid constant names
define("2TWO", "second thing");
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 中添加)返回方法名,按照声明时的大小写进行区分。 |