<?php
#传统遍历取值模式
$arr = [];
for($i=0;$i<10000;++$i){
$arr[]=$i;
}
foreach($arr as $v){
echo $v,' ';
}
#消耗资源 byte (字节)
echo memory_get_usage() . '</br>';
#生成器取值模式
function Getattr(){
for($i=0;$i<10000;++$i){
yield $i;
//循环到生成器节点后停止循环,直到下一次使用$i时在循环一次
}
}
#返回generator对象
$num = Getattr();
foreach($num as $v){
echo $v,' '; 每输出一次Getattr里面循环一次
}
#消耗资源 byte(字节 )
echo memory_get_usage() . '</br>';
生成器可以很大程度少减少php内存使用,优化速度,在做数据大量输出,大数据分析时很有用