Heim >Backend-Entwicklung >PHP-Tutorial >Wie ordne ich Klasseneigenschaften in PHP anonyme Funktionen zu?
Anonyme Funktionen zu Klasseneigenschaften in PHP zuweisen
In PHP ist es nicht möglich, eine Klasseneigenschaft direkt einer anonymen Funktion zu initialisieren, wenn es zu erklären. Der folgende Codeausschnitt:
<code class="php">class AssignAnonFunction { private $someFunc = function() { echo "Will Not work"; }; }</code>
Generiert die Fehlermeldung „Parse-Fehler: Syntaxfehler, unerwartete T_FUNCTION.“ Dies liegt daran, dass die PHP-Sprache die Initialisierung von Eigenschaften mit Funktionen während der Deklarationsphase nicht zulässt.
Einschränkung der Konstantwertinitialisierung
Laut PHP-Handbuch Klasseneigenschaften können während ihrer Deklaration nur mit konstanten Werten initialisiert werden. Ein konstanter Wert ist ein Wert, der zur Kompilierzeit ausgewertet werden kann, ohne auf Laufzeitinformationen angewiesen zu sein. Funktionen erfüllen dieses Kriterium jedoch nicht und sind daher bei der Deklaration nicht als Eigenschaftsinitialisierer zulässig.
Problemumgehung mit Konstruktor
Obwohl es nicht möglich ist, Eigenschaften mit anonymen Funktionen zu initialisieren Bei der Deklaration ist es möglich, Eigenschaften innerhalb der Konstruktormethode Funktionen zuzuweisen. Eine Änderung des vorherigen Codes wie folgt ermöglicht die Zuweisung:
<code class="php">class AssignAnonFunctionInConstructor { private $someFunc; public function __construct() { $this->someFunc = function() { echo "Does Work"; }; } }</code>
Die Konstruktormethode wird bei der Objekterstellung aufgerufen und ermöglicht die Zuweisung der anonymen Funktion zur Eigenschaft zur Laufzeit.
Das obige ist der detaillierte Inhalt vonWie ordne ich Klasseneigenschaften in PHP anonyme Funktionen zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!