Я видел такой код:
function($cfg) use ($connections) {}
но php.net, похоже, не упоминает эту функцию. Я предполагаю, что это связано с областью, но как?
use
не является функцией, это часть синтаксиса Closure . Он просто делает указанные переменные внешней области доступными внутри закрытия.
$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 }
Например:
$array = array('foo', 'bar', 'baz'); $prefix = uniqid(); $array = array_map(function ($elem) use ($prefix) { return $prefix . $elem; }, $array); // $array = array('4b3403665fea6foo', '4b3403665fea6bar', '4b3403665fea6baz');
Он сообщает анонимной функции, чтобы сделать $connections
( родительскую переменную) доступной в своей области.
Без него в функции не будут определены $connections
.
Документация .