查询

AppendIterator::rewind()函数—用法及示例

「 将AppendIterator的迭代器指针重置到第一个迭代器的开头 」


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()方法将迭代器指针重置到第一个迭代器的开头,再次使用循环遍历了全部元素,并将它们输出。

参考文档:PHP AppendIterator::rewind()

补充纠错
上一个函数: AppendIterator::next()函数
下一个函数: AppendIterator::valid()函数
热门PHP函数
分享链接