Sind PHP-Schließungen kaputt oder fehlt mir etwas?

8

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

, gebrochen

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?

    
Prody 01.01.2010, 19:21
quelle

2 Antworten

12

Variablen, die vom äußeren Bereich geerbt wurden, müssen explizit aufgelistet werden. aus dem Handbuch:

%Vor%     
just somebody 01.01.2010, 19:32
quelle
3

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.

    
Darrell Brogdon 01.01.2010 19:37
quelle

Tags und Links