PHP 生成器的使用

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章