PHP类常量
介绍
PHP允许将一个类中的标识符定义为一个常量值,该标识符在每个类的基础上保持不变。为区分变量或属性类,常量的名称不以$符号为前缀,并以const限定词。
常量的默认可见性是公共的,尽管可以在定义中使用其他修饰符。常数的值必须是特定的表达式,而不是变量,也不是函数调用/属性。使用范围解析运算符通过类名称访问常量的值。尽管可以通过自变量引用方法内部
语法
class SomeClass{ const CONSTANT = 'constant value'; } echo SomeClass::CONSTANT;
常量名称区分大小写。按照惯例,常量的名称以大写形式给出
类常量示例
本示例说明如何定义和访问类常量
示例
<?php class square{ const PI=M_PI; var $side=5; function area(){ $area=$this->side**2*self::PI; return $area; } } $s1=new square(); echo "PI=". square::PI . "\n"; echo "area=" . $s1->area(); ?>
输出结果
这将产生以下结果。-
PI=3.1415926535898 area=78.539816339745
类常量作为表达式
在此示例中,为类常量分配了一个表达式
示例
<?php const X = 22; const Y=7; class square { const PI=X/Y; var $side=5; function area(){ $area=$this->side**2*self::PI; return $area; } } $s1=new square(); echo "PI=". square::PI . "\n"; echo "area=" . $s1->area(); ?>
外
这将产生以下结果。-
PI=3.1428571428571 area=78.571428571429
类常量可见性修改器
示例
<?php class example { const X=10; private const Y=20; } $s1=new example(); echo "public=". example::X. "\n"; echo "private=" . $s1->Y ."\n"; echo "private=" . $example::Y ."\n"; ?>
输出结果
这将产生以下结果。-
1public=10 PHP Notice: Undefined property: example::$Y in line 11 private=PHP Fatal error: Uncaught Error: Cannot access private const example::Y