Bu gibi bir kod görmüştüm:Kapsam için PHP use() işlevi?
function($cfg) use ($connections) {}
fakat php.net bu işlevi belirtmiyor. Sanırım bu konuyla alakalı, ama nasıl?
Bu gibi bir kod görmüştüm:Kapsam için PHP use() işlevi?
function($cfg) use ($connections) {}
fakat php.net bu işlevi belirtmiyor. Sanırım bu konuyla alakalı, ama nasıl?
use
, bir işlev değil, Closure syntax ürününün bir parçasıdır. Dış kapağın belirtilen değişkenlerini sadece kapağın içinde mevcut yapar. Örneğin
$foo = 42;
$bar = function() {
// can't access $foo in here
echo $foo; // undefined variable
};
$baz = function() use ($foo) {
// $foo is made available in here by use()
echo $foo; // 42
}
: $ connections` `null` olmaz` unutulmamalıdır
$array = array('foo', 'bar', 'baz');
$prefix = uniqid();
$array = array_map(function ($elem) use ($prefix) {
return $prefix . $elem;
}, $array);
// $array = array('4b3403665fea6foo', '4b3403665fea6bar', '4b3403665fea6baz');
Bu, anonim işlevinin, kapsamına uygun $connections
(ana değişken) yapmasını bildiriyor.
Olmadan, $connections
işlev içinde tanımlanamaz.
; anonim işlevinin kapsamına “use ($ connection)” ile açıkça aktarılmadıysa tanımlanmamış bir değişken olur. –
@IanGustafson Teşekkürler, cevabı güncelleyeceğim. – alex