通过引用使用数组

时间:2008-10-10 15:02:38

标签: php arrays reference

为什么以下代码在PHP中“崩溃”?

$normal_array       = array();
$array_of_arrayrefs = array( &$normal_array );

end( $array_of_arrayrefs )["one"] = 1; // choking on this one

预期的结果是最终的代码行附加了$normal_array,其键one的值为1但是没有输出,甚至没有输出此代码之前的内容。在这个场景的真实上下文中,我使用end()函数来始终附加到最后一个数组引用。

1 个答案:

答案 0 :(得分:3)

这不会崩溃,它只包含语法错误:

end( $array_of_arrayrefs )["one"] = 1;

不幸的是,您不能将函数返回值视为PHP中的数组。您必须明确指定值。不幸的是,这在这里不起作用,因为end复制了返回的值。