2011-10-25 45 views

Trả lời

8

use không phải là chức năng, là một phần của Closure syntax. Nó chỉ đơn giản là làm cho các biến xác định của phạm vi bên ngoài có sẵn bên trong bao đóng.

$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 
} 

Ví dụ:

$array = array('foo', 'bar', 'baz'); 
$prefix = uniqid(); 

$array = array_map(function ($elem) use ($prefix) { 
    return $prefix . $elem; 
}, $array); 

// $array = array('4b3403665fea6foo', '4b3403665fea6bar', '4b3403665fea6baz'); 
3

Điều này cho biết chức năng ẩn danh cần thực hiện $connections (một biến số cha mẹ) có sẵn trong phạm vi của nó.

Nếu không có, $connections sẽ không được xác định bên trong hàm.

Documentation.

+0

Cần lưu ý rằng '$ connections' sẽ không được' null'; nó sẽ là một biến không xác định nếu nó không được nhập khẩu một cách rõ ràng vào phạm vi của hàm ẩn danh với 'use ($ connections)'. –

+0

@IanGustafson Cảm ơn, tôi sẽ cập nhật câu trả lời. – alex

Các vấn đề liên quan