函数名:Generator::rewind()
适用版本:PHP 5 >= 5.5.0, PHP 7
用法:Generator::rewind() 函数用于将生成器的内部指针重置到生成器的第一个元素。
示例:
function myGenerator() {
yield 'apple';
yield 'banana';
yield 'orange';
}
$generator = myGenerator();
echo $generator->current(); // 输出:apple
$generator->next();
echo $generator->current(); // 输出:banana
$generator->rewind();
echo $generator->current(); // 输出:apple
在上面的示例中,我们定义了一个生成器函数 myGenerator()
,它会依次生成三个水果。
首先,我们创建了一个生成器对象 $generator
并使用 current()
方法获取当前指针所指向的元素,输出结果为 apple
。
然后,我们使用 next()
方法将指针移动到下一个元素,再次使用 current()
方法获取当前指针所指向的元素,输出结果为 banana
。
最后,我们使用 rewind()
方法将指针重置到第一个元素,并再次使用 current()
方法获取当前指针所指向的元素,输出结果再次为 apple
。
注意:rewind()
方法只能在第一次调用生成器之前使用,或者在生成器已经完成迭代后再次使用,否则会抛出一个异常。