Widziałem kodu:Funkcja PHP() dla zakresu?
function($cfg) use ($connections) {}
ale php.net nie wydaje się, aby wspomnieć tę funkcję. Zgaduję, że jest to związane z zasięgiem, ale jak?
Widziałem kodu:Funkcja PHP() dla zakresu?
function($cfg) use ($connections) {}
ale php.net nie wydaje się, aby wspomnieć tę funkcję. Zgaduję, że jest to związane z zasięgiem, ale jak?
use
nie jest funkcją, jest częścią Closure syntax. Po prostu powoduje, że określone zmienne zewnętrznego zakresu są dostępne wewnątrz zamknięcia.
$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
}
Na przykład:
$array = array('foo', 'bar', 'baz');
$prefix = uniqid();
$array = array_map(function ($elem) use ($prefix) {
return $prefix . $elem;
}, $array);
// $array = array('4b3403665fea6foo', '4b3403665fea6bar', '4b3403665fea6baz');
To jest mówienie funkcję anonimową aby $connections
(a rodzic zmienną ) dostępny w swoim zakresie.
Bez tego, $connections
nie zostałby zdefiniowany wewnątrz funkcji.
Należy zauważyć, że '$ connections' nie byłoby' null'; byłaby niezdefiniowaną zmienną, gdyby nie została jawnie zaimportowana do zakresu funkcji anonimowej za pomocą 'use ($ connections)'. –
@IanGustafson Dzięki, zaktualizuję odpowiedź. – alex