为什么以下代码在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()函数来始终附加到最后一个数组引用。
答案 0 :(得分:3)
这不会崩溃,它只包含语法错误:
end( $array_of_arrayrefs )["one"] = 1;
不幸的是,您不能将函数返回值视为PHP中的数组。您必须明确指定值。不幸的是,这在这里不起作用,因为end
复制了返回的值。