Heim  >  Artikel  >  Backend-Entwicklung  >  Warum kann ich PHP-Klasseneigenschaften nicht mit einfachen Ausdrücken wie „2 => (4 1)“ initialisieren?

Warum kann ich PHP-Klasseneigenschaften nicht mit einfachen Ausdrücken wie „2 => (4 1)“ initialisieren?

Susan Sarandon
Susan SarandonOriginal
2024-11-01 12:49:58792Durchsuche

Why Can't I Initialize PHP Class Properties with Simple Expressions Like (4 1)“? " /> (4 1)"? " />

PHP-Klassen-Eigenschaftsdeklarationen mit einfachen Ausdrücken

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!

Stellungnahme:
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