Wie ordne ich Klasseneigenschaften in PHP anonyme Funktionen zu?

Susan Sarandon
Freigeben: 2024-10-26 13:25:02
Original
631 Leute haben es durchsucht

How to Assign Anonymous Functions to Class Properties in PHP?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!