PHP函数名:AppendIterator::rewind()
函数描述:将AppendIterator的迭代器指针重置到第一个迭代器的开头。
用法示例1:
$iter1 = new ArrayIterator(['a', 'b', 'c']);
$iter2 = new ArrayIterator(['x', 'y', 'z']);
$appendIter = new AppendIterator();
$appendIter->append($iter1);
$appendIter->append($iter2);
$appendIter->rewind();
while ($appendIter->valid()) {
echo $appendIter->current() . " ";
$appendIter->next();
}
// 输出: a b c x y z
解释示例1:上面的代码创建了两个数组迭代器,然后使用AppendIterator
将它们合并到一个迭代器中。调用rewind()
方法将迭代器指针重置到第一个迭代器的开头,然后使用valid()
方法检查迭代器是否还有元素,使用current()
方法获取当前元素,使用next()
方法将迭代器指针向后移动。最终,使用循环遍历了所有的元素,并将它们输出。
用法示例2:
class CustomIterator implements Iterator {
private $position = 1;
public function rewind() {
$this->position = 1;
}
public function valid() {
return $this->position <= 3;
}
public function current() {
return $this->position;
}
public function key() {
return $this->position;
}
public function next() {
++$this->position;
}
}
$iter1 = new CustomIterator();
$iter2 = new ArrayIterator(['a', 'b', 'c']);
$appendIter = new AppendIterator();
$appendIter->append($iter1);
$appendIter->append($iter2);
$appendIter->rewind();
while ($appendIter->valid()) {
echo $appendIter->current() . " ";
$appendIter->next();
}
// 输出: 1 2 3 a b c
解释示例2:上面的代码创建了一个自定义的迭代器CustomIterator
,它实现了Iterator
接口的rewind()
、valid()
、current()
、key()
和next()
方法。然后通过AppendIterator
将自定义迭代器和数组迭代器合并,调用rewind()
方法将迭代器指针重置到第一个迭代器的开头,再次使用循环遍历了全部元素,并将它们输出。