Was sind Klassenkonstanten?
In PHP können wir verstehen, dass eine Größe, deren Wert sich nicht ändert, als Konstante bezeichnet wird. Was ist also eine Klassenkonstante? Tatsächlich sind Klassenkonstanten auch leicht zu verstehen. Wir können den Wert, der in der Klasse immer unverändert bleibt, als Konstante bezeichnen, und diese Konstante kann als Klassenkonstante bezeichnet werden. Denken Sie unbedingt daran, dass Sie beim Definieren und Verwenden von Konstanten nicht das Symbol „$“ verwenden müssen.
Klassenkonstanten gehören zur Klasse selbst, nicht zu Objektinstanzen, und können nicht über Objektinstanzen aufgerufen werden
* Kann nicht mit public, protected, private, static
geändert werden * Unterklassen können überschrieben werden. Um Konstanten in der übergeordneten Klasse zu schreiben, können Sie die Konstanten in der übergeordneten Klasse über (parent::) aufrufen.
* Seit PHP5.3.0 können Sie eine Variable verwenden, um die Klasse dynamisch aufzurufen . Der Wert dieser Variablen darf jedoch kein Schlüsselwort sein (z. B. self, parent oder static).
Definition von Klassenkonstanten
Klassenkonstanten werden mit dem const-Schlüsselwort definiert:
const 常量名 = 常量值
Beispiel
Definieren und verwenden Sie eine Klassenkonstante
<?php header("content-type:text/html;charset=utf-8"); /** * PHP类常量 * * 类常量属于类自身,不属于对象实例,不能通过对象实例访问 * 不能用public,protected,private,static修饰 * 子类可以重写父类中的常量,可以通过(parent::)来调用父类中的常量 * 自PHP5.3.0起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如self,parent或static)。 */ class Foo { // 常量值只能是标量,string,bool,integer,float,null,可以用nowdoc结构来初始化常量 const BAR = 'PHP中文网'; public static function getConstantValue() { // 在类的内部可以用self或类名来访问自身的常量,外部需要用类名 return self::BAR; } public function getConstant() { return self::BAR; } } $foo = 'Foo'; echo $foo::BAR, '<br />'; echo Foo::BAR, '<br />'; $obj = new Foo(); echo $obj->getConstant(), '<br />'; echo $obj->getConstantValue(), '<br />'; echo Foo::getConstantValue(); ?>
Ergebnis der Codeausführung:
Ergebnis Im obigen Beispiel schreiben wir die übergeordnete Klasse mit a um Unterklassenkonstanten, der Code lautet wie folgt:
<?php header("content-type:text/html;charset=utf-8"); /** * PHP类常量 * * 类常量属于类自身,不属于对象实例,不能通过对象实例访问 * 不能用public,protected,private,static修饰 * 子类可以重写父类中的常量,可以通过(parent::)来调用父类中的常量 * 自PHP5.3.0起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如self,parent或static)。 */ class Foo { // 常量值只能是标量,string,bool,integer,float,null,可以用nowdoc结构来初始化常量 const BAR = 'PHP中文网'; public static function getConstantValue() { // 在类的内部可以用self或类名来访问自身的常量,外部需要用类名 return self::BAR; } public function getConstant() { return self::BAR; } } $foo = 'Foo'; echo $foo::BAR, '<br />'; echo Foo::BAR, '<br />'; $obj = new Foo(); echo $obj->getConstant(), '<br />'; echo $obj->getConstantValue(), '<br />'; echo Foo::getConstantValue(); // 以上均输出PHP中文网 echo "<hr/>"; class Bar extends Foo { const BAR = 'foo'; // 重写父类常量 public static function getMyConstant() { return self::BAR; } public static function getParentConstant() { return parent::BAR; } } echo Bar::getMyConstant(),'<br/>'; // foo echo Bar::getParentConstant(); // PHP中文网 ?>
Ergebnisse der Codeausführung:
Empfohlene verwandte Artikel:
Definition von PHP-Konstanten Detaillierte Erklärungen und Anwendungsbeispiele
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Definition und Beispiele der PHP-Klassenkonstanten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!