版本在 php5.5+,
生成器语法(yield), 能够在需要的时候去产生值,而非提前创建所有的值
只要有一个函数中,出现了yield 那么他就是生成器函数
function b(){
yield 1;
}
var_dump(b());
将输出一个对象,一个表示返回值是生成器对象, 生成器对象必须由foreach遍历 不然会报错
yield 与 return 一样可以返回结果,不同的是 return 之后,程序之后就不再执行,重新执行时,又重新开始;
yield 是暂停 ,在yield之后 再次重新执行程序时,会接着从暂停处继续执行
function a()
{
$num = 0;
while($num<100){
$num++;
yield $num;
}
}
foreach( a() as $val ){
echo $val;
}
最主要的是解决大数据 分批分次 按序载入来降低对内存的使用