PHP 生成器的使用
-
PHP经常用的语法
function nums() { $array = array(); for ($i = 0; $i < 10000; ++$i) { $array[]= $i; } return $array; } foreach (nums() as $v){ var_dump($v); };
安装原来的写法,return多个迭代之后的值,需要放进数组里面,然后return返回。如果这个数组足够大,所占用的内存也比较大,和空间相比,内存还是比较珍贵的,特别在服务器上。
-
生成器的用法
function nums2() { for ($i = 0; $i < 10000; ++$i) { yield $i; } } foreach (nums2() as $v){ var_dump($v); };
生成器最大的不同就是使用了yield,PHP每次调用都是调用生成器的方法代码,我觉得是占用了空间,而内存占用的情况变小了,在大的迭代上,使用生成器真的可以优化很多内存,小数的迭代性能上没什么区别。