常量类似变量,但常量一旦被定义就无法更改或撤销定义。常量最主要的作用是可以避免重复定义,篡改变量值,提高代码可维护性。有效的常量名以字符或下划线开头(常量名称前面没有$符号)。通常,常量全用大写。PHP中的常量分为自定义常量和系统常量
[注意]与变量不同,常量贯穿整个脚本是自动全局的
自定义常量使用define()函数,它使用三个参数
[1]首个参数定义常量的名称
[2]第二个参数定义常量的值
[3]可选的第三个参数规定常量名是否对大小写敏感,默认是false
define()函数的语法格式为:
bool <span>define</span>(<span>string</span> <span>$constant_name</span>, <span>mixed</span> <span>$value</span>[, <span>$case_sensitive</span> = <span>true</span>])
<?<span>php </span><span>$p</span> = 'PI0'<span>; </span><span>define</span>('PI',3.14<span>); </span><span>define</span>('PI',3.15);<span>//</span><span>无效,因为常量无法被修改定义</span> <span>define</span>(<span>$p</span>,3.14<span>); </span><span>echo</span> <span>PI</span>;<span>//</span><span>3.14</span> <span>echo</span> "<br>"<span>; </span><span>echo</span> PI0;<span>//</span><span>3.14</span> ?>
系统常量是PHP已经定义好的常量,常见的系统常量有:
[1]__FILE__:php程序文件名。获取当前文件在服务器的物理位置
[2]__LINE__:PHP程序文件行数。表示当前代码在第几行
[3]PHP_VERSION:当前解析器的版本号。可以提前知道PHP代码是否可被该PHP解析器解析
[4]PHP_OS:执行当前PHP版本的操作系统名称。告诉服务器所用的操作系统名称,根据该操作系统优化代码
<?<span>php </span><span>echo</span> <span>__FILE__</span>;<span>//</span><span>D:\wamp\www\1.php</span> <span>echo</span> "<br />"<span>; </span><span>echo</span> <span>__LINE__</span>;<span>//</span><span>11</span> <span>echo</span> "<br />"<span>; </span><span>echo</span> <span>PHP_VERSION</span>;<span>//</span><span>5.5.12</span> <span>echo</span> "<br />"<span>; </span><span>echo</span> <span>PHP_OS</span>;<span>//</span><span>WINNT</span> <span>echo</span> "<br />"<span>; </span>?>
获取常量值有两种方法:一种是使用常量名直接获取值;另一种是使用constant()函数
constant()函数语法格式为:mixed constant(string constant_name)
<?<span>php </span><span>$p</span><span>; </span><span>define</span>("PI1",3.14<span>); </span><span>define</span>("PI2",3.142<span>); </span><span>$height</span> = "中"<span>; </span><span>if</span>(<span>$height</span> == "中"<span>){ </span><span>$p</span> = "PI1"<span>; }</span><span>else</span><span>{ </span><span>$p</span> = "PI2"<span>; } </span><span>$r</span> = 1<span>; </span><span>$area</span> = <span>constant</span>("PI") * <span>$r</span> * <span>$r</span><span>; </span><span>echo</span> <span>$area</span><span>; </span>?>
如果常量被重复定义后,PHP解析器会发出"Constant XXX already defined"的警告,提醒该常量已被定义过
defined()函数用来判断一个常量是否已经定义,其语法格式为:
bool <span>defined</span>(<span>string</span> constants_name)
若存在则返回true,否则返回false
<?<span>php </span><span>define</span>("PI1",3.14<span>); </span><span>$p</span> = "PI1"<span>; </span><span>$is1</span> = <span>defined</span>(<span>$p</span><span>); </span><span>$is2</span> = <span>defined</span>("PI2"<span>); </span><span>var_dump</span>(<span>$is1</span>);<span>//</span><span>bool(true)</span> <span>var_dump</span>(<span>$is2</span>);<span>//</span><span>bool(false)</span> ?>