我想了解一段代碼:PHP,SPL,ArrayIterator
$array = array('koala', 'kangaroo', 'wombat', 'wallaby', 'emu', 'kiwi', 'kookaburra', 'platypus');
$object = new ArrayIterator($array);
foreach($object as $key=>$value)
{
if($object->offSetGet($key) === 'kiwi')
{
$object->offSetUnset($key);
}
echo $key.' - '.$value."<br />";
}
什麼,我想明白的是爲什麼offSetUnset走的是指針的第二個元素的數組,而不是到第一個,我的理論是事件的順序如下:
當offSetUnset被稱爲指針專家組對元素0, 的offSetUnset等到的foreach要求的元素則offSetUnset 知道它可以採取行動,所以,當它發生了,它刪除了給定的元素arlier,當它完成迭代時,它轉到下一個元素,這就是爲什麼我認爲我們在offSetUnset重置foreach循環後丟失了0元素。
但是正如我所說的那樣,在我問到這裏之前只有一個理論,所以如果有人能通過事件序列帶我請我們失去0元素,謝謝大家,祝你有美好的一天。
謝謝Alfasin,有一個愉快的一天。 –