PHP 5.3 yeni özellikler hakkında okuma oldum ve önemli özelliklerinden biri closures vardır.
Unless I'm very badly mistaken, the PHP developers are either:
a) confusing closures with just anonymous functions
b) the closures are broken in PHP 5.3.1 in which I'm testing
what wikipedia says kapakları Anonim işlevler artı işlevin kapsamı işlevin ebeveynin kapsamı değişkenlerin bağlanma mekanizması vardır. Son bölümü PHP kırılmış görünüyor.
Ben garip, PHP hataları kontrol, ve bu konuda hiçbir şey buldum.
İşte test kulüpler nasıl:
<?php
function getFun() {
$x = 2;
return function() {
return $x;
};
}
$f = getFun(); // getFun()(); doesn't work -.-
var_dump($f()); // $f() == null
Aslında kapanışları uygulamak dillerde, 2 verir:
def f():
x = 2
return lambda: x
print(f()()) # prints 2
ve
alert((function() {
var x = 2;
return function() {
return x;
};
})()()); // alerts 2
Yani, ben yanlış ya?