2013-07-06 30 views
9

Để trả về một tham chiếu từ một hàm trong PHP một người phải:Có thể trả lại một tham chiếu từ một đóng trong PHP không?

... sử dụng toán tử tham khảo & trong cả phần khai báo hàm và khi gán giá trị trả về để một biến.

này kết thúc lên trông như:

function &func() { return $ref; } 
$reference = &func(); 

Tôi cố gắng để trả về một tham chiếu từ một kết thúc. Trong một ví dụ đơn giản, những gì tôi muốn đạt được là:

$data['something interesting'] = 'Old value'; 

$lookup_value = function($search_for) use (&$data) { 
    return $data[$search_for]; 
} 

$my_value = $lookup_value('something interesting'); 
$my_value = 'New Value'; 

assert($data['something interesting'] === 'New Value'); 

Tôi dường như không nhận được cú pháp thông thường để trả lại các tham chiếu từ các chức năng hoạt động.

Trả lời

11

Mã của bạn sẽ trông như thế này:

$data['something interesting'] = 'Old value'; 

$lookup_value = function & ($search_for) use (&$data) { 
    return $data[$search_for]; 
}; 

$my_value = &$lookup_value('something interesting'); 
$my_value = 'New Value'; 

assert($data['something interesting'] === 'New Value'); 

Kiểm tra this ra:

+0

Got nó trong một. Một sự lựa chọn kỳ lạ của sytax để nhớ. Cảm ơn! – Sam152

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