主頁 > 知識庫 > PHP生成器功能與用法實(shí)例分析

PHP生成器功能與用法實(shí)例分析

熱門標(biāo)簽:地圖標(biāo)注專員怎么樣 寧波外呼營銷系統(tǒng) 福建銀行智能外呼系統(tǒng)價格 電話機(jī)器人銷售主要負(fù)責(zé)什么 四川保險智能外呼系統(tǒng)供應(yīng)商 遼寧ai電銷機(jī)器人價格 上海做外呼線路的通信公司 房產(chǎn)中介用的是什么外呼系統(tǒng) 長沙做地圖標(biāo)注公司

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

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

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

3. 代碼示例:

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

4. 實(shí)際應(yīng)用示例

/**
 * 大量數(shù)據(jù)生成示例
 * @param int $page
 * @param int $limit
 * @return Generator
 */
public function generator($page = 1,$limit = 50000)
{
  while (true) {
    echo "第{$page}次".'generator開始內(nèi)存:'.$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結(jié)束內(nèi)存:'.$this->getMemory().'br>';
    $page++;
  }
}
    //測試生成器內(nèi)存消耗
//    foreach ($this->generator() as $result) {
//      var_dump($result[0]);
//    }

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php常用函數(shù)與技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》及《php程序設(shè)計算法總結(jié)》

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

您可能感興趣的文章:
  • PHP Web表單生成器案例分析
  • PHP迭代器和生成器用法實(shí)例分析
  • PHP生成器(generator)和協(xié)程的實(shí)現(xiàn)方法詳解
  • PHP中你可能忽略的性能優(yōu)化利器:生成器
  • PHP十六進(jìn)制顏色隨機(jī)生成器功能示例
  • PHP新特性詳解之命名空間、性狀與生成器
  • php驗(yàn)證碼生成器
  • thinkPHP連接sqlite3數(shù)據(jù)庫的實(shí)現(xiàn)方法(附Thinkphp代碼生成器下載)
  • PHP5.5迭代生成器用法實(shí)例詳解
  • PHP 生成器的使用詳解

標(biāo)簽:佛山 宿遷 工商登記 澳門 宜春 延安 常德 深圳

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP生成器功能與用法實(shí)例分析》,本文關(guān)鍵詞  PHP,生,成器,功能,與,用法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP生成器功能與用法實(shí)例分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP生成器功能與用法實(shí)例分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章