Tôi đã thấy mã như sau:Hàm sử dụng PHP() cho phạm vi?
function($cfg) use ($connections) {}
nhưng php.net dường như không đề cập đến chức năng đó. Tôi đoán nó liên quan đến phạm vi, nhưng làm thế nào?
Tôi đã thấy mã như sau:Hàm sử dụng PHP() cho phạm vi?
function($cfg) use ($connections) {}
nhưng php.net dường như không đề cập đến chức năng đó. Tôi đoán nó liên quan đến phạm vi, nhưng làm thế nào?
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');
Đ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.
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)'. –
@IanGustafson Cảm ơn, tôi sẽ cập nhật câu trả lời. – alex