为了从PHP中的函数返回引用,必须:
...使用参考运算符&在 函数声明和分配返回值时 变量。
这最终看起来像:
function &func() { return $ref; }
$reference = &func();
我正在尝试从闭包中返回引用。在一个简化的例子中,我想要实现的是:
$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');
我似乎无法获得从函数函数返回引用的常规语法。
答案 0 :(得分:11)
您的代码应如下所示:
$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');
检查this: