Php 简明教程
PHP – Class Constants
PHP 允许将类中的标识符定义为具有常量值的“类常量”,它在每个类基础上保持不变。为了与类中的变量或属性区分开来,该常量的名称没有前缀通常的“$”符号,并由“const”限定符定义。请注意,PHP 程序还可以使用 define() 函数创建全局常量。
常量的默认可见性是公共的,尽管可以在定义中使用其他修饰符。常量的值必须是一个表达式,而不是变量、函数调用或属性。常量值通过作用域解析运算符通过类名进行访问。在方法中,可以通过 self 变量引用它。
class SomeClass {
const CONSTANT = 'constant value';
}
echo SomeClass::CONSTANT;
Constant names are case sensitive 。传统上,常量的名称使用大写字母。
Example
此示例显示了如何定义和访问类常量:
<?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();
?>
它将生成以下 output −
PI=3.1415926535898
area=78.539816339745
Class Constant as Expression
在这个示例中,类常量被分配一个表达式 -
<?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();
?>
它将生成以下 output −
PI=3.1428571428571
area=78.571428571429
Class Constant Visibility Modifiers
请看以下示例:
<?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";
?>
它将生成以下 output −
public=10
PHP Notice: Undefined property: example::$Y in line 11
private=
PHP Fatal error: Uncaught Error: Cannot access private const example::Y