2011-12-16 91 views
1

调用一个函数,该函数将带有不存在的键的数组作为引用的参数,修改该数组以便稍后使用该键。通过引用调用创建密钥索引

function test(&$x) 
{ 
} 

$array = array(); 

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

Array 
(
) 
Array 
(
    [foo] => 
) 

为什么出现这种情况,我能做些什么呢?

回答

1

当您尝试将它传递给函数创建的关键:

test($array['foo']); 

你想通过引用传递它,所以它必须存在。 PHP会为你创建它(但是如果你启用了它,我会发出一个通知)。

我想重写功能,并通过在阵列和单独的键:

function test(&$array, $key) 

,并使用它是这样的:

test($array, 'foo');