Was ist der Grund, warum PHP den Const-Fehler verwendet?

silencement
Freigeben: 2023-02-25 10:12:01
Original
2769 Leute haben es durchsucht

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 = &#39;constant value&#39;;
    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()获取所有定义的常量
Nach dem Login kopieren

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;
Nach dem Login kopieren

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 = &#39;java&#39;;
}
echo a;  //必错
Nach dem Login kopieren

2. const verwendet einen gewöhnlichen Konstantennamen und define kann Ausdrücke verwenden. Da der Name

const  FOO = &#39;PHP&#39;;
for ($i = 0; $i < 32; ++$i) { 
    define(&#39;PHP_&#39; . $i, 1 << $i); 
}
Nach dem Login kopieren

3.const nur statische Skalare akzeptieren kann, kann define jeden beliebigen Ausdruck annehmen.

const PHP = 1 << 5;    // 错误
define(&#39;PHP&#39;, 1 << 5); // 正确
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!