我试图理解一段代码:
$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 知道它可以行动,所以当它发生时,它会删除之前给定的元素,当它完成迭代时,它会转到下一个元素,这就是为什么我认为在 offSetUnset 重置 foreach 循环后我们会丢失 0 元素。
但正如我所说,这只是我在问这里之前提出的一个理论,所以如果有人可以带我通过事件序列让我们失去 0 元素,谢谢大家,祝你有美好的一天。