(4 1)“? " /> (4 1)"? " />
Frage:
Obwohl in der PHP-Dokumentation angegeben ist, dass die Eigenschaftsinitialisierung konstante Werte enthalten kann, wird dies versucht Initialisieren Sie ein Array mit einfachen Ausdrücken wie „2 => (4 1)“ oder die Zuweisung eines numerischen Werts mit „4 1“ führt zu Syntaxfehlern. Warum werden diese Ausdrücke nicht akzeptiert?
Antwort:
Diese Einschränkung war wurde in PHP Version 5.6 mit der Einführung von konstanten Skalarausdrücken behoben.
Mit dieser neuen Funktion können Sie jetzt Skalarausdrücke mit numerischen und String-Literalen und/oder Konstanten in verschiedenen Kontexten bereitstellen, einschließlich Konstanten- und Eigenschaftsdeklarationen:
<code class="php">class C { const THREE = TWO + 1; const ONE_THIRD = ONE / self::THREE; }</code>
Daher sind die Ausdrücke, die zuvor Syntaxfehler verursachten, jetzt in PHP 5.6 und höher gültig:
<code class="php">public $var = array( 1 => 4, 2 => (4+1), ); public $var = 4+1;</code>
Diese Ausdrücke können zur Kompilierungszeit ausgewertet werden und Verlassen Sie sich nicht auf Laufzeitinformationen und erfüllen Sie die Anforderungen für Eigenschaftsinitialisierungskonstantenwerte.
Das obige ist der detaillierte Inhalt vonWarum kann ich PHP-Klasseneigenschaften nicht mit einfachen Ausdrücken wie „2 => (4 1)' initialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!