2011-10-25 12 views

Odpowiedz

8

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'); 
3

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.

Documentation.

+0

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)'. –

+0

@IanGustafson Dzięki, zaktualizuję odpowiedź. – alex