10

为了从 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');

我似乎无法获得从正常工作的函数返回引用的常规语法。

4

1 回答 1

13

您的代码应如下所示:

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

看看这个

于 2013-07-06T08:42:13.627 回答