PHP Generator::next() 方法
PHP Generator::next()
方法用于继续执行生成器。
(PHP 5 >= 5.5.0, PHP 7)
方法原型
PHP Generator::next()
方法的原型如下
public void Generator::next ( void )
从方法原型中可以看出,该方法既不用传递任何传输也不会返回任何值。只是简单的通知生成器应该继续执行。
其实,调用 Generator::next()
方法相当于调用 Generator::send(NULL)`
使用 foreach
迭代一个生成器时,会在每次迭代元素后自动调用 next()
方法。
范例
因为使用 foreach
我们是看不到 foreach
如何调用 next()
方法,但我们可以写一个范例来实现手动调用 next()
<?php function gen_zero_to_ten() { for ($i = 1; $i <= 10; $i++) { yield $i; } } $generator = gen_zero_to_ten(); echo '当前的值为: ', $generator->current(), "\n"; // 做一些其它事情 // 完成后生成下一个值 $generator->next(); echo '当前的值为: ', $generator->current(), "\n"; // 做一些其它事情 // 完成后生成下一个值 $generator->next(); echo '当前的值为: ', $generator->current(), "\n";
运行这段代码,输出结果如下
当前的值为: 1 当前的值为: 2 当前的值为: 3