



常量是指定义时赋值,但在代码执行过程不能改变其数据的标识。PHP中,可以使用define()函数定义常量,函数定义如下。
define(string $name, mixed $value[, bool $case_insensitive = false]) : bool
其中,
● $name参数使用字符串指定常量名称,可以使用一对双引号或一对单引号定义,如"MAX_SIZE”。习惯上,常量名称会使用大写字母,单词之间使用下画线(_)连接的形式。
● $value参数指定常量的值,使用混合类型(mixed),可以指定不同类型的数据。不过,建议常量还是使用基本的数据类型,如数值、字符串、布尔类型等。
● $case_insensitive参数指定是否忽略常量名中字母的大小写,默认为false,即常量名区分字母的大小写。请注意,在PHP 8中不再允许此参数设置为true,也就是说,未来的PHP常量名将严格区分字母的大小写,例如,Max_Size和MAX_SIZE表示不同的常量。
读取常量的数据时,可以使用constant()函数,其定义如下。
constant(string $name) : mixed
constant()函数只需要一个参数,即常量名。下面的代码演示了如何定义常量并读取它的数据。
<?php
define("MAX_SIZE",255);
echo constant("MAX_SIZE");
?>
页面会显示255。此外,也可以直接使用常量名调用,如下面的代码同样会显示255。
<?php
define("MAX_SIZE",255);
echo MAX_SIZE;
?>
判断一个常量是否已经定义,可以使用defined()函数,其定义如下。
defined(string $name) : bool
参数$name指一个常量名,如果常量已定义,函数将返回true,否则返回false。下面的代码演示了defined()函数的使用。
<?php
define("MAX_SIZE",255);
var_dump(defined("MAX_SIZE"));
echo "<br>";
var_dump(defined("MAX_BUFFER"));
?>
代码执行结果见图2-6。
图 2-6
第一个输出,由于已经定义了常量MAX_SIZE,所以defined()函数返回true;第二个输出,由于没有定义常量MAX_BUFFER,则返回false。
true和false是布尔类型(bool)数据,直接显示它们的值时需要注意,true会显示1,而false会显示为空,在页面中看不到内容,所以,对于布尔类型的值,可以使用var_dump()函数显示。