Moin!
Hallo,
Es kommt mir so vor, als würde hier auf ungeheuer komplizierte Art und Weise ein Designfehler von PHP ausgebügelt, nämlich dass es keine privaten Funktionen (also in Funktionen gekapselte Unterfunktionen) gibt. Die fehlen mir oft!
PHP ist eine Scheißsprache, ja, und mit dem Verstreuen von ein wenig funktionalem Zucker wird sie nicht angenehmer. ;)
Private Funktionen gibt es in prozeduralen, nicht funktionalen Sprachen höchstens in der Objektorientierung (Klassendeklarationen). Closures in PHP sollen weniger das Verschachteln von Funktionen ermöglichen, sondern andere Probleme umgehen:
Ich weiß gar nicht, was Christian Seiler sich damals dabei gedacht hat, als er für PHP Closures implementiert hat. Vermutlich hat er es einfach nur getan, weil er es konnte, und das Feature wurde unbeachtet seiner Implikationen, die man erst später herausfinden konnte, reviewed und integriert.
Insofern sollen Closures in PHP erstmal einfach nur da sein und sonst nix.
- Sven Rautenberg