调用一个函数,该函数将参数作为带有不存在键的数组的引用,修改数组以便以后存在该键。
function test(&$x)
{
}
$array = array();
print_r($array);
test($array['foo']);
print_r($array);
Array
(
)
Array
(
[foo] =>
)
为什么会发生这种情况,我能为此做些什么吗?
答案 0 :(得分:1)
当您尝试将密钥传递给函数时,会创建密钥:
test($array['foo']);
您希望通过引用传递它,因此它必须存在。 PHP会为你创建它(但我猜它应该在你启用它们的情况下发出通知)。
我会重写函数并分别传递数组和密钥:
function test(&$array, $key)
并像这样使用它:
test($array, 'foo');