![PHP 从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/705/27111705/b_27111705.jpg)
2.3 PHP常量
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P39_4174.jpg?sign=1738863170-zecpaa9UEUWCppd3TbOlyL5B0qTYdoIu-0-75058e46ac97045b229612ba26e1c328)
在PHP中,常量类似于变量,但是常量一旦被定义就无法更改或撤销定义。
2.3.1 定义和使用常量
在开发中,通常把不经常变的值定义成常量。常量一般用全部大写表示,前面不加美元符号($)。常量由英文字母、下画线和数字组成,但数字不能作为首字母出现。常量值被定义后,在脚本的其他任何地方都不能被改变。
定义常量,通常使用define()函数,语法格式如下:
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P39_73475.jpg?sign=1738863170-6ZgjOG8U28nxv4udyRa0pEc81SwX6lqS-0-e4f4855c2a93f73ab0c71e05021a5640)
其中三个参数的具体含义如下:
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P39_73476.jpg?sign=1738863170-VsrGksmFAlFi0A4MyyPGkpP84FJPho5u-0-722228cfe2c24831d6b831c1d6e3d606)
另外,还可以使用const关键字来定义常量,如const A=“100”,这样就定义了一个常量A。
虽然define()函数和const关键字都可以定义常量,但是有以下几点区别:
(1)const定义的常量大小写敏感;define()函数可以通过第三个参数指定是否区分大小写,true表示大小写不敏感,默认为false。
(2)const不能在函数、循环和if条件语句中进行定义,define()函数可以。
(3)const可以在类中进行定义,define()函数不可以。
在使用常量时,有两种方法可以获取常量。
一种是直接使用常量的名称来获取常量的值,例如:
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P39_73477.jpg?sign=1738863170-sBvNj6quaaHBOBSrThsffK95p8wlDOrO-0-bda558992d317f0f09db588085abc405)
另一种是使用constant()函数获取常量的值,例如:
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P39_73478.jpg?sign=1738863170-etaEBIBVImrkTXKjxbB2ywBCczyJ3Lqg-0-dc99ddc90981975db612a08f0747b60a)
其中,CONSTANT为要获取的常量的名称。
另外,还可以通过defined()函数判断一个常量是否已经被定义,语法格式如下:
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P39_73479.jpg?sign=1738863170-LkFeJCSa7eKNx1mjtFlQBxFU45sm9vQX-0-d8fff15b28ee9301d457fe3e5c27592f)
如果存在CONSTANT常量返回true,否则返回false。下面通过一个实例进行介绍。
【例2-15】(实例文件:ch02\Chap2.15.php)定义和使用常量。
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P40_4183.jpg?sign=1738863170-hQ6yikfxS7f0uvj7NAS89i5T0RSBooRd-0-7bc3b3ea51d5db09adc640b356bbb5cf)
在IE浏览器中运行结果如图2-23所示。
2.3.2 预定义常量
在PHP中,除了可以自己定义常量外,还可以使用预定义的一系列常量,直接在程序中使用它们完成一些特殊的功能。但由于每个用户所使用的操作系统和软件版本不同,所以获取的结果也不一定相同,这是根据每个用户的实际情况获取的。常用的预定义常量如表2-4所示。
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P40_4348.jpg?sign=1738863170-G1HRZlknv85dC6JzWczIscZe9e9eCLRf-0-24437f8c3c969fdd0f3db7ef6382a4f0)
图2-23 定义和使用常量
表2-4 常用的预定义常量
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-T40_73083.jpg?sign=1738863170-lTVQukI0xbmuHUh6QQuH6uQZX5C3Bm41-0-ecf2d4fb060a97889cbe4c9ee576f255)
注意:表中的__FILE__和__LINE__中的“__”是两条下画线,不是一条“_”。预定义常量尽量大写,有些常量是区分大小写的,如PHP_VERSION、PHP_OS等。
【例2-16】(实例文件:ch02\Chap2.16.php)预定义常量的基本运用。
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P40_73481.jpg?sign=1738863170-ZAlEX0dANqTLHtrgiwv7fq0zbRLcqHCL-0-700365cf69414f9858131c183e980bec)
在IE浏览器中运行结果如图2-24所示。
![](https://epubservercos.yuewen.com/B097BE/15477656605638806/epubprivate/OEBPS/Images/Figure-P41_4354.jpg?sign=1738863170-4qSrvTob4XYvhYNq0vF7WgHGinci83f7-0-f604b1a40cbbd3054a0da14a1fd686a9)
图2-24 预定义常量的基本运用