Ich habe die neuen Funktionen von PHP 5.3 gelesen, und eine der wichtigsten Funktionen sind closures .
Wenn ich mich nicht sehr irre, sind die PHP-Entwickler entweder:
a) verwirrende Schließungen mit nur anonymen Funktionen
b) Die Closures sind in PHP 5.3.1, in dem ich gerade teste
Aus was Wikipedia sagt, sind Closures der Mechanismus von anonymen Funktionen plus die Bindung der Bereichsvariablen der Funktion des Elternteils der Funktion zum Funktionsumfang. Der letzte Teil scheint in PHP gebrochen zu sein.
Ich habe PHP-Bugs überprüft und dabei seltsamerweise nichts gefunden.
Hier ist, wie ich teste:
%Vor%In Sprachen, die Closures tatsächlich implementieren, gibt es 2 zurück:
%Vor%und
%Vor%Also, liege ich falsch oder?
Variablen, die vom äußeren Bereich geerbt wurden, müssen explizit aufgelistet werden. aus dem Handbuch:
%Vor% Die Implementierung von Closures durch PHP unterscheidet sich ein wenig von dem, was Sie erwarten würden, wenn Sie mit der Verwendung von JavaScript vertraut sind. Der Aufruf von function () { return x; }
funktioniert nicht, da Sie die use
-Anweisung verwenden müssen.