Dynamische Instanzmethode in PHP erstellen

8

Ich würde gerne in der Lage sein, dynamisch eine Instanzmethode innerhalb eines Klassenkonstruktors zu erstellen:

%Vor%

Das Problem scheint zu sein, dass das Funktionsobjekt lambda_2 nicht innerhalb des Konstruktors an $ gebunden wird.

Jede Hilfe ist willkommen.

    
Aaron 12.07.2010, 19:00
quelle

2 Antworten

18

Sie weisen die anonyme Funktion einer -Eigenschaft zu, versuchen dann jedoch, eine -Methode mit dem Eigenschaftsnamen aufzurufen. PHP kann die anonyme Funktion nicht automatisch von der Eigenschaft dereferenzieren. Folgendes wird funktionieren

%Vor%

Sie können die Methode magic __call verwenden, um ungültige Methodenaufrufe abzufangen, um zu sehen, ob es eine Eigenschaft gibt, die eine Callback / anonyme Funktion enthält:

%Vor%

Ab PHP5.3 können Sie auch Lambdas mit

erstellen %Vor%

Siehe das PHP-Handbuch zu anonymen Funktionen zur weiteren Verwendung.

    
Gordon 12.07.2010, 19:25
quelle
3

Sie können die __call magische Methode verwenden, um Laufzeit-Instanzmethoden zu verwenden.

%Vor%     
webbiedave 12.07.2010 19:15
quelle

Tags und Links