Ich beginne gerade mit PHP und frage mich, ob es eine Möglichkeit gibt, einer Klasseninstanz eine anonyme Funktion hinzuzufügen.
Sagen wir zum Beispiel ...
%Vor%Was ich hoffe, ist die Wiederverwendung des gleichen Codes in einer großen Anzahl verschiedener Anwendungen und die Möglichkeit, Funktionen in bestimmten Fällen einfach auszutauschen und zu ersetzen.
Ich verwende php5.3 (also sollten anonyme Funktionen funktionieren, nur nicht so, wie ich sie benutze).
Vielen Dank für Ihre Zeit!
-GK
FWIW:
Die Behandlung von anonymen Funktionen durch PHP 5.3 ist unterhaltsam. Dies wird nicht funktionieren:
%Vor%Das wird funktionieren:
%Vor% Um dies zu umgehen, müssen Sie einen __call
hack wie den
Dieses Verhalten kann sich in Zukunft ändern. Der Array-Dereferenzierungs-RFC war vor kurzem an den PHP-Stamm gebunden , und der Patch hat eine Diskussion über function call chaining , dessen Syntax erlaubt, was Sie ohne den __call hack machen wollen. Leider ist es nachweislich schwierig in der Vergangenheit , Funktionsaufrufe zu funktionieren.
Klingt so, als würden Sie ein Strategie-Pattern oder Decorator Pattern - es gibt andere Wege , um dies auf eine Weise zu erreichen, die leichter mit anderen kommuniziert werden kann Entwickler, die Ihren Code gelesen haben.
Sie können etwas in diese Richtung tun (was auch mit Callbacks funktioniert, die keine Closures sind):
%Vor% was HelloWorld here
ergibt.
Das heißt, Sie sollten auch die Vererbung oder das Dekorationsmuster in Betracht ziehen.
Tags und Links class php instance anonymous-function