0

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

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

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

预期的结果是最后的代码行附加了具有值$normal_array的键,但没有任何输出,甚至没有打印此代码之前的内容。在此场景的实际上下文中,我使用 end() 函数始终附加到最后一个数组引用。one1

4

1 回答 1

3

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

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

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

于 2008-10-10T15:08:05.890 回答