8
该代码时产生意想不到的输出:PHP foreach语句引用:意外的行为,再利用迭代
$array=str_split("abcde");
foreach($array as &$item)
echo $item;
echo "\n";
foreach($array as $item)
echo $item;
输出:
abcde
abcdd
如果使用&$item
的第二循环,一切工作正常。
我不明白这段代码会如何影响$array
的内容。我可以认为隐含的unset($header)
会删除最后一行,但双重dd
从哪里来?
谢谢。无论如何,在第一次循环后,要从第四个元素“分离”$ item? – 2011-06-09 04:13:42
@lenzai:'unset($ item);'---只要您不再需要它来防止这种混淆,通常会取消设置参考变量。 – zerkms 2011-06-09 04:16:19
我的错误,我认为没有设置($ item会删除$ array [4]。我想我错了。 – 2011-06-09 04:20:08