Heim >Backend-Entwicklung >PHP-Tutorial >Warum können Sie eine PHP-Klasseneigenschaft zum Zeitpunkt der Deklaration nicht für eine Funktion initialisieren?
Beim Versuch, eine PHP-Klasseneigenschaft während ihrer Deklaration für eine Funktion zu initialisieren, wird ein „Parse-Fehler“ angezeigt : Syntaxfehler, unerwarteter T_FUNCTION-Fehler kann auftreten.
<code class="php">class AssignAnonFunction { private $someFunc = function() { echo "Will Not work"; }; }</code>
Dies tritt auf, weil PHP die Initialisierung von Eigenschaften mit nicht konstanten Werten wie Funktionen nicht zulässt. Das PHP-Handbuch erklärt:
„Eigenschaften werden durch die Verwendung eines der Schlüsselwörter public, protected oder private definiert, gefolgt von einer normalen Variablendeklaration … diese Initialisierung muss ein konstanter Wert sein … das muss es sein kann zur Kompilierungszeit ausgewertet werden und darf nicht von Laufzeitinformationen abhängig sein, um ausgewertet zu werden Eigenschaften können jedoch mit Funktionen mithilfe der Methode __construct() initialisiert werden:
Dies ist möglich, da die Methode __construct() zur Laufzeit aufgerufen wird, was die Zuweisung dynamischer Werte ermöglicht, einschließlich Funktionen.
Das obige ist der detaillierte Inhalt vonWarum können Sie eine PHP-Klasseneigenschaft zum Zeitpunkt der Deklaration nicht für eine Funktion initialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!