自定义常量
自定义常量通过使用PHP中的函数define()定义。
define()函数的语法格式为:
bool define(string $constant_name, mixed $value[, $case_sensitive = true])
它有3个参数:
第一个参数constant_name
为必选参数,常量名称,即标志符,常量的命名规则与变量的一致,但是要注意,它可以是一个字符串,也可以是一个变量。第二个参数value
为必选参数,它是常量的值。第三个参数case_sensitive
为可选参数,指定是否大小写敏感,设定为true表示不敏感,一般不指定第三个参数的情况下,默认第三个参数的值为false。
另外,这里的string表示参数类型为字符串类型,mixed表示参数类型可以接受为多种不同的类型。
如:
<?php
$p = "C1";
define($p,100);
define("C2",200);
echo C1; // 输出:100
echo "<br />";
echo C2; // 输出:200
?>
系统常量
系统常量是PHP已经定义好的常量,常见的系统常量有:
__FILE__
:php程序文件名。它可以帮助我们获取当前文件在服务器的物理位置。
__LINE__
:PHP程序文件行数。它可以告诉我们,当前代码在第几行。
PHP_VERSION
:当前解析器的版本号。它可以告诉我们当前PHP解析器的版本号。
PHP_OS
:执行当前PHP版本的操作系统名称。
获取常量值
获取常量值的有两种方法取值。第一种是使用常量名直接获取值。
第二种是使用constant()函数。它和直接使用常量名输出的效果是一样的,但函数可以动态的输出不同的常量,在使用上要灵活、方便,其语法格式如下:
mixed constant(string constant_name)
参数constant_name
为要获取常量的名称,也可为存储常量名的变量。如果成功则返回常量的值,失败则提示错误信息常量没有被定义。这里的mixed表示函数返回值类型为多种不同的类型,string表示参数类型为字符串类型。
两种方法使用如:
<?php
define("PI",3.14);
$r=1;
$area = PI*$r*$r;
$area = constant("PI")*$r*$r;
?>
判断常量是否已经被定义
如果常量被重复定义,PHP解析器会发出“Constant XXX already defined”的警告,defined()函数可以判断一个常量是否已经定义,其语法格式为:
bool defined(string constants_name)
它只有参数constant_name
,指的是要获取常量的名称,同样,这个名称可以是一个字符串,也可以是一个变量。若存在则返回布尔类型true,否则返回布尔类型false。