Heim  >  Artikel  >  Backend-Entwicklung  >  Warum können Sie eine PHP-Klasseneigenschaft zum Zeitpunkt der Deklaration nicht für eine Funktion initialisieren?

Warum können Sie eine PHP-Klasseneigenschaft zum Zeitpunkt der Deklaration nicht für eine Funktion initialisieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-25 17:26:44603Durchsuche

Why can't you initialize a PHP class property to a function at declaration time?

Warum können Sie eine PHP-Eigenschaft 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!

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