Fonksiyonları dönmek fonksiyonlarını uygulamak için PHP 4 bir hile var mı? Ben aşağıdaki kod işe beklenmektedir:
function xxx($a) {
return function($b) {
print "a=$a, b=$b \n";
}
}
$f1 = xxx(1);
$f1(2);
Ne yazık ki, PHP 4 hiç şans yok. Muhtemelen PHP 5 çalışır, ama PHP 4 ile sınırlıdır.
Ben OO ile çözüm için çalıştı, ancak yine (sınıf bildirimleri iç içe olabilir) başarısız oldu:
class Closure {
function run($a) {
print "raise: NotImplementedException, instead: $a\n";
}
}
class WantCheckNesting extends Closure {
function run($a, $b) {
class Nested extends Closure {
function run($c) {
print "a=$a, b=$b, c=$c\n";
}
}
$o = new Nested();
return $o;
}
}
$d = new WantCheckNesting();
$e = $d->run(2, 3);
$e->run(4);
Orada bir işlev "create_function", ama çok sınırlıdır: vücudun bir dize olmalıdır.
Diğer fikirler?