2011-10-25 30 views

回答

8

use不是一個函數,它是Closure syntax的一部分。它只是使封閉內部的外部作用域的指定變量可用。

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

這是告訴匿名函數使$connections(一個變量)在其範圍內可用。

沒有它,$connections將不會在函數內部定義。

Documentation

+0

應當指出的是'$ connections'不會'null';如果它沒有使用'use($ connections)'顯式地導入到匿名函數的作用域中,它將是一個未定義的變量。 –

+0

@IanGustafson謝謝,我會更新答案。 – alex