php yield处理大数据的方法
比方说读取10G excel
内存不够用 一般人会用分成20个 然后处理 处理完释放内存 这样虽然可以 但是代码沉余 不方便维护
用yield的方法
function createRange($number){ for($i=0;$i<$number;$i++){ yield time(); } } $data =createRange(10); foreach($data as $value){ sleep(1);//这里停顿1秒,我们后续有用 echo $value.PHP_EOL; }
一个一个消耗。
原理就是把time()放入队列 foreach就是读取队列