首先生成器是实现了迭代器接口的类,所以叫做迭代生成器
Generator: 生成器
Iterator: 迭代器
Generator implements Iterator {
/* 方法 */
public current ( void ) : mixed
public next ( void ) : void
public rewind ( void ) : void
public send ( mixed $value
) : mixed //重启生成器的运行,直到遇到yield关键字才再次停止
public throw ( Exception $exception
) : void
public valid ( void ) : bool
public __wakeup ( void ) : void
}
<?php
function gen_one_to_three() {
for ($i = 1; $i <= 3; $i++) {
//注意变量$i的值在不同的yield之间是保持传递的。
yield $i;
}
}
$generator = gen_one_to_three();
foreach ($generator as $value) {
echo "$value\n";
}
?>
gen_one_to_three()生成一个可迭代的对象简单来说就是 保留上次执行后的环境