he visto código como este:Función PHP use() para el alcance?
function($cfg) use ($connections) {}
pero php.net no parece mencionar que la función. Supongo que está relacionado con el alcance, pero ¿cómo?
he visto código como este:Función PHP use() para el alcance?
function($cfg) use ($connections) {}
pero php.net no parece mencionar que la función. Supongo que está relacionado con el alcance, pero ¿cómo?
use
no es una función, es parte de Closure syntax. Simplemente hace que las variables especificadas del alcance exterior estén disponibles dentro del cierre.
$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
}
Por ejemplo:
$array = array('foo', 'bar', 'baz');
$prefix = uniqid();
$array = array_map(function ($elem) use ($prefix) {
return $prefix . $elem;
}, $array);
// $array = array('4b3403665fea6foo', '4b3403665fea6bar', '4b3403665fea6baz');
Está diciendo a la función anónima que haga $connections
(una variable padre) disponible en su alcance.
Sin él, $connections
no estaría definido dentro de la función.
Cabe señalar que '$ connections' no sería' null'; sería una variable indefinida si no se importó explícitamente en el alcance de la función anónima con 'use ($ connections)'. –
@IanGustafson Gracias, actualizaré la respuesta. – alex