一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP生成器功能與用法實例分析

PHP生成器功能與用法實例分析

2019-10-17 11:02吳昌良 PHP教程

這篇文章主要介紹了PHP生成器功能與用法,結合實例形式分析了PHP生成器的概念、功能、使用方法及相關操作注意事項,需要的朋友可以參考下

本文實例講述了PHP生成器功能與用法。分享給大家供大家參考,具體如下:

1. 官方說明:生成器提供了一種更容易的方法來實現簡單的對象迭代,相比較定義類實現 Iterator 接口的方式,性能開銷和復雜性大大降低。生成器允許你在 foreach 代碼塊中寫代碼來迭代一組數據而不需要在內存中創建一個數組。

2. 生成器就像一個普通的自定義一樣, 和普通函數只返回一次不同的是, 生成器可以根據需要 yield 多次,以便生成需要迭代的值。

3. 代碼示例:

//未使用生成器
echo '開始內存:'.getMemory().'<br>';
$nums = range(0,1000000);
echo '結束內存:'.getMemory().'<br>';
//輸出結果
//開始內存:0.23M
//結束內存:130.31?
//使用生成器
echo '開始內存:'.getMemory().'<br>';
$nums = xrange(1000000);
function xrange($total)
{
  for ($i = 0; $i < $total; $i++) {
    yield $i;
  }
}
echo '結束內存:'.getMemory().'<br>';
//輸出結果
//開始內存:0.23M
//結束內存:0.23M

4. 實際應用示例

/**
 * 大量數據生成示例
 * @param int $page
 * @param int $limit
 * @return Generator
 */
public function generator($page = 1,$limit = 50000)
{
  while (true) {
    echo "第{$page}次".'generator開始內存:'.$this->getMemory().'<br>';
    $start = ($page-1) * $limit;
    $sql = "SELECT p.id,p.wh_code,p.goods_sn FROM p_product as p WHERE p.wh_code LIKE '%YB%' OR p.wh_code LIKE '%DZWH%' LIMIT {$start},{$limit} ";
    $resultAll = db()->fetchAll($sql);
    yield $resultAll; //生成器?
    if (count($resultAll) != $limit) {
      break;
    }
    echo "第{$page}次".'generator結束內存:'.$this->getMemory().'<br>';
    $page++;
  }
}
    //測試生成器內存消耗
//    foreach ($this->generator() as $result) {
//      var_dump($result[0]);
//    }

希望本文所述對大家PHP程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费观看国产大片资源视频 | 欧美久久天天综合香蕉伊 | 人成网站在线观看 | 欧美国产高清 | 饭冈加奈子黑人解禁在线播放 | 久久九九久精品国产尤物 | 日本在线看| 午夜亚洲福利 | 成人激情 | poverty中国老妇人 | 久久黄色录像 | 亚洲国产午夜 | 欧美 亚洲 综合 卡通 另类 区 | 肉文np高h| 啪啪免费入口网站 | 欧美国产日本高清不卡 | 传说之下羊妈挤羊奶网站 | 亚洲精品丝袜在线一区波多野结衣 | 日本色吧 | 国产一区视频在线免费观看 | 日b在线| 日本欧美强乱视频在线 | 亚洲精品卡1卡二卡3卡四卡 | 水岛津实在线 | 成人免费影院 | 天堂资源在线www中文 | 国产欧美精品一区二区三区四区 | 国产麻豆91欧美一区二区 | 极端 成熟 性别 视频 | 日韩视频在线精品视频免费观看 | 亚洲视频日韩 | 掀开奶罩边躁狠狠躁软学生 | 亚洲欧美久久婷婷爱综合一区天堂 | 果冻传媒九一制片厂 | 男女发生性关系视频 | 性夜影院爽黄A爽免费动漫 性色欲情网站IWWW九文堂 | 欧美在线一 | 给我一个黄色网址 | 国产伦码精品一区二区三区 | 99久久精品免费看国产 | 女子张腿让男人桶免费 |