Heim > Artikel > Backend-Entwicklung > Was ist der Grund, warum PHP den Const-Fehler verwendet?
Jeder weiß, dass define Konstanten definiert. Was ist, wenn wir Konstanten in einer Klasse definieren? Natürlich können Sie nicht define verwenden, sondern const, wie im folgenden Beispiel:
<?php //在类外面通常这样定义常量 define("PHP","phpernote.com"); class MyClass{ //常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号 const constant = 'constant value'; function showConstant() { echo self::constant; } } echo MyClass::constant; $classname = "MyClass"; echo $classname::constant; // PHP 5.3.0之后 $class = new MyClass(); $class->showConstant(); echo $class::constant; // PHP 5.3.0之后 print_r(get_defined_constants()); //可以用get_defined_constants()获取所有定义的常量
Im Allgemeinen definiert define Konstanten außerhalb der Klasse, const definiert Konstanten innerhalb der Klasse und auf const muss über den Klassennamen zugegriffen werden: :Variablenname. PHP5.3 und höher unterstützen jedoch die Definition von Konstanten durch const außerhalb der Klasse. Wie unten gezeigt, ist dies in Ordnung:
const a = "abcdef"; echo a;
Was die Grundkenntnisse von Konstanten betrifft, werde ich hier nicht weiter darauf eingehen Darüber hinaus gibt es weitere Unterschiede zwischen define und const (Auszug aus Network):
1.const kann keine Konstanten in bedingten Anweisungen definieren, aber define ist wie folgt möglich:
if(1){ const a = 'java'; } echo a; //必错
2. const verwendet einen gewöhnlichen Konstantennamen und define kann Ausdrücke verwenden. Da der Name
const FOO = 'PHP'; for ($i = 0; $i < 32; ++$i) { define('PHP_' . $i, 1 << $i); }
3.const nur statische Skalare akzeptieren kann, kann define jeden beliebigen Ausdruck annehmen.
const PHP = 1 << 5; // 错误 define('PHP', 1 << 5); // 正确
4.const selbst ist eine Sprachstruktur. Und define ist eine Funktion. Die Verwendung von const ist also viel schneller.
Das ist alles über den Unterschied zwischen const und define in PHP.
Das obige ist der detaillierte Inhalt vonWas ist der Grund, warum PHP den Const-Fehler verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!