$pie = array('Apple' => 1, 'Cherry' => 3, 'Pumpkin' => 6);
reset($pie);
while (list($k, $v) = each($pie)) {
echo "$k => $v\n";
$desserts[]=$pie;
}
如果$desserts[]=$pie
行被註釋掉,則此代碼塊按預期方式執行。在while循環中分配數組會導致無限循環
爲什麼當它未被註釋時會進入無限循環?
我不明白爲什麼發生這種情況。這是什麼不能做的完美例子,但我不明白爲什麼整個數組打印一遍又一遍。我認爲只是第一片會重複。
是的,這是一個不做的例子。我無法得到這種行爲。如果指針正在重置,那麼爲什麼輸出不會只是「Apple => 1」? – Swoop
@Swoop PHP在修改方法時可以與數組一起使用。當你使用'$ desserts [] = $ pie;'這些值實際上並沒有被複制到'$ desserts'中,直到有些東西被改變。所以'重置'可能不會發生,直到PHP看到'$ pie'和'$ desserts'不再是相同的,這可能是'$ pie'到達數組末尾時。 – cgTag