PHP 类常量

phpserver side programmingprogramming更新于 2025/7/18 23:07:17

简介

PHP 允许将类中的标识符定义为具有常量值,该值在每个类中保持不变。为了与类中的变量或属性区分开来,常量名称不以 $ 符号为前缀,而是使用 const 限定符定义。

常量的默认可见性为 public,但定义时可以使用其他修饰符。常量的值必须是特定表达式,而不是变量,也不是函数调用/属性。常量的值可以通过作用域解析运算符通过类名访问。但在方法内部,可以通过 self 变量引用它。

语法

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 . "
"; 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 . "
"; echo "area=" . $s1->area(); ?>

outer

这将产生以下结果。−

PI=3.1428571428571
area=78.571428571429

类常量可见性修饰符

示例

<?php
class example {
   const X=10;
   private const Y=20;
}
$s1=new example();
echo "public=". example::X. "
"; echo "private=" . $s1->Y ."
"; echo "private=" . $example::Y ."
"; ?>

输出

这将产生以下结果。−

1public=10
PHP Notice: Undefined property: example::$Y in line 11
private=PHP Fatal error: Uncaught Error: Cannot access private const example::Y

相关文章