生成器(generator)
2018-08-28 本文已影响0人
zhyke
调用生成器函数(yield)的时候,php会返回一个属于Generator类的对象.这个对象可以使用foreach()函数进行迭代.每次迭代,php会要求Generator实例计算并提供下一个要迭代的值.生成器每次产出一个值之后,生成器的内部状态都会停顿,向生成器请求下一个值时,内部状态又会恢复.生成器的内部状态会一直在停顿和恢复之间切换,直到函数的末尾或遇到空的return;语句为止,
![](https://img.haomeiwen.com/i11005865/5c540c6e6b76f0bc.png)
节省内存
![](https://img.haomeiwen.com/i11005865/71fc537a6c74f533.png)
读取大文件
![](https://img.haomeiwen.com/i11005865/d7cab4adb7030e24.png)
参考
Modern PHP