有人能向我解释,为什么key()在for循环中不能正常工作?
示例
$iterator = new \ArrayIterator(range(1,3));
for ($iterator->seek(0); $iterator->key() < 3; $iterator->next()) {
echo "{$iterator->key()} => {$iterator->current()}", PHP_EOL;
}它返回无穷大循环,但如果更改for循环的第二个表达式on:$iterator->key() < 2,则不会显示最后一个元素。有人能解释原因吗?
我需要在X上显示2个元素,改变数组中的指针,然后在Y上显示3个元素,改变数组中的指针,然后显示2个元素.等。
发布于 2016-08-03 11:52:56
你可以直接用foreach
foreach ($iterator as $key => $value) {
// Do the things you gotta do here...
}我想你不是在要求解决办法,你只是想知道为什么。正如其他人所解释的那样,一旦迭代器到达最后一个元素,$iterator->key()就是null,即< 3,并将保持这种方式。
https://stackoverflow.com/questions/38742293
复制相似问题