PHP Manual手册对于生成器的概述:PHP Manual Generator
PHP Manual手册新特性中关于生成器的描述:PHP新特性
对生成器及其应用场景比较详细的解释:PHP中被忽略的性能优化利器:生成器
在 Laravel 文档中,看到下面这行字:
查阅代码,发现底层代码是这样的:
没错,就是使用了生成器,所以在数据量较大的时候,节省了内存。
简单示例:
$generator = function () {
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $item) {
yield $item * $item;
}
};
foreach ($generator() as $value) {
echo $value . ' ';
}
输出:
1 4 9 16 25