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每次调用都是调用生成器的方法代码,我觉得是占用了空间,而内存占用的情况变小了,在大的迭代上,使用生成器真的可以优化很多内存,小数的迭代性能上没什么区别。

发表评论

电子邮件地址不会被公开。 必填项已用*标注