通过引用调用创建密钥索引

时间:2011-12-16 09:24:49

标签: php arrays function

调用一个函数,该函数将参数作为带有不存在键的数组的引用,修改数组以便以后存在该键。

function test(&$x)
{
}

$array = array();

print_r($array);
test($array['foo']);
print_r($array);

Array
(
)
Array
(
    [foo] => 
)

为什么会发生这种情况,我能为此做些什么吗?

1 个答案:

答案 0 :(得分:1)

当您尝试将密钥传递给函数时,会创建密钥:

test($array['foo']);

您希望通过引用传递它,因此它必须存在。 PHP会为你创建它(但我猜它应该在你启用它们的情况下发出通知)。

我会重写函数并分别传递数组和密钥:

function test(&$array, $key)

并像这样使用它:

test($array, 'foo');