私はコードの一部を理解しようとしています:
$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が最初の要素ではなく配列の2番目の要素へのポインターを取得している理由です。私の理論は、次の一連のイベントです。
offSetUnsetが要素0へのポインタgoeと呼ばれると、offSetUnsetはforeachが要素を要求するまで待機し、offSetUnsetはそれが動作できることを認識します。したがって、それが発生すると、前に指定された要素が削除されます。反復が終了すると、次の要素とそれが、offSetUnsetがforeachループをリセットした後に0要素を失うと思う理由です。
しかし、私がここで尋ねる前に思いついた唯一の理論を言ったので、誰かが私を連れて行ってくれるなら、イベントシーケンスを通して私たちを0要素を失いました。ありがとうございました。良い一日を。