![PHP从入门到精通(第7版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/247/52842247/b_52842247.jpg)
3.4 PHP常量
本节主要介绍PHP常量,包括常量的定义、使用以及预定义常量。
3.4.1 常量的定义和使用
常量就是值不可更改的量。常量值被定义后,在脚本的其他任何地方都不会再发生改变。一个常量由英文字母、下画线和数字组成,但数字不能作为首字母。
在PHP8中使用define()函数来定义常量,语法格式如下:
define(string constant_name, mixed value)
该函数有3个参数,详细说明如表3.7所示。
表3.7 define()函数的参数说明
![](https://epubservercos.yuewen.com/F3962F/31397982604256406/epubprivate/OEBPS/Images/Figure-T52_63577.jpg?sign=1739227380-zt7TyUw6M6ti24a1bKfn1aNdfS5H6bTb-0-9e408dd253377ecaaad6c61066187264)
获取常量的值有两种方法:一种是使用常量名直接获取值;另一种是使用constant()函数。
constant()函数和直接使用常量名输出的效果是一样的,优点是可以动态地输出不同的常量,在使用上要灵活很多。constant()函数的语法格式如下:
mixed constant(string const_name)
其中,const_name为要获取常量的名称,也可为存储常量名的变量。如果获取成功,则返回常量的值;否则会提示错误信息,提示常量没有被定义。
要判断一个常量是否已经被定义,可以使用defined()函数,该函数的语法格式如下:
bool defined(string constant_name);
其中,constant_name为要获取常量的名称,成功则返回true,否则返回false。
【例3.9】比较define()、constant()和defined()函数。使用define()函数定义一个常量,使用constant()函数动态获取常量的值,使用defined()函数判断常量是否已被定义。(实例位置:资源包\TM\sl\3\9)
![](https://epubservercos.yuewen.com/F3962F/31397982604256406/epubprivate/OEBPS/Images/Figure-P52_65541.jpg?sign=1739227380-iJkCP8cK3LH3O5VLGRKyKwP6AazmCZ5r-0-bd4f27e9554f716e26f78a573328f705)
运行结果如图3.7所示。
![](https://epubservercos.yuewen.com/F3962F/31397982604256406/epubprivate/OEBPS/Images/Figure-P52_5805.jpg?sign=1739227380-u6B3JZkZaCTm3bxoa4K4tgNrFTc6IB1q-0-1c84697edaf165ba722df806ca5dacd1)
图3.7 通过函数对常量进行定义、获取和判断
注意
在PHP 8.0以前,使用一个未定义的常量,可能会被解析为常量名称组成的字符串,并产生一个E_NOTICE级别的错误,在PHP 8.0之后,会产生E_ERROR。
3.4.2 预定义常量
PHP中可以使用预定义常量获取PHP中的信息。常用的预定义常量如表3.8所示。
表3.8 PHP的预定义常量
![](https://epubservercos.yuewen.com/F3962F/31397982604256406/epubprivate/OEBPS/Images/Figure-T53_63582.jpg?sign=1739227380-iqh2l5dKcmTMZ0d2MYupkEQzmBkev3cu-0-8a8ac41e9234a44ede29efcf5d5796d7)
说明
__FILE__和__LINE__中的“__”是两条下画线,而不是一条“_”。
以E_开头的预定义常量用于PHP的错误调试,如需详细了解,请参考error_ reporting()函数。
预定义常量与用户自定义常量在使用上没有什么差别,下面来看一个例子。
【例3.10】使用预定义常量输出PHP中的信息。(实例位置:资源包\TM\sl\3\10)
![](https://epubservercos.yuewen.com/F3962F/31397982604256406/epubprivate/OEBPS/Images/Figure-P53_65542.jpg?sign=1739227380-p3LbiiPH1ZyruuAHes4ZtecapbXz7T0c-0-544bc81c3681fb5c2b3312d8d4ae15c9)
运行结果如图3.8所示。
![](https://epubservercos.yuewen.com/F3962F/31397982604256406/epubprivate/OEBPS/Images/Figure-P53_5946.jpg?sign=1739227380-7sjn6v0IUnZ8ebCCDGqbpEpNizgNqN17-0-04d07386b713d11fb9cc64dce0d17397)
图3.8 应用PHP预定义常量输出信息
说明
由于不同用户的操作系统和软件版本不同,执行本例所得的结果也可能不同。