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