php防止内存爆满崩盘,使用yield 生成器减缓超大数组遍历、excel汇出瓶颈问题

yield关键字

生成器函数的核心是yield关键字。以最简单的形式,yield语句看起来很像return语句,除了yield而不是停止函数的执行并返回,而是为循环生成器的代码提供一个值,并暂停生成器函数的执行。

Example#1

<?php
public function gen_one_to_three($data)
    {
    
    
        foreach ($data as $da) {
    
    
            yield $da;
        }
    }

$generator = gen_one_to_three($data);
foreach ($generator as $value) {
    
    
    echo "$value\n";
}
?>

上面的示例将输出:

1
2
3

yield 在此处的关键作用是降低了内存的使用,例如当$data 是一个超过1000条值的数组时则非常有效,它会极大的优化php的性能,节省大量的内存。

参考:https://blog.csdn.net/Csoap2/article/details/87620204

猜你喜欢

转载自blog.csdn.net/weixin_42433970/article/details/115111732
今日推荐