最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP5.5新特性之yield理解與用法實例分析

 更新時間:2019年01月11日 12:00:24   作者:moliyiran  
這篇文章主要介紹了PHP5.5新特性之yield理解與用法,結(jié)合實例形式分析了php5.5 yield生成器功能、原理、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下

本文實例講述了PHP5.5新特性之yield理解與用法。分享給大家供大家參考,具體如下:

yield生成器是php5.5之后出現(xiàn)的,yield提供了一種更容易的方法來實現(xiàn)簡單的迭代對象,相比較定義類實現(xiàn) Iterator 接口的方式,性能開銷和復(fù)雜性大大降低。

yield生成器允許你 在 foreach 代碼塊中寫代碼來迭代一組數(shù)據(jù)而不需要在內(nèi)存中創(chuàng)建一個數(shù)組。

使用示例:

/**
 * 計算平方數(shù)列
 * @param $start
 * @param $stop
 * @return Generator
 */
function squares($start, $stop) {
  if ($start < $stop) {
    for ($i = $start; $i <= $stop; $i++) {
      yield $i => $i * $i;
    }
  }
  else {
    for ($i = $start; $i >= $stop; $i--) {
      yield $i => $i * $i; //迭代生成數(shù)組: 鍵=》值
    }
  }
}
foreach (squares(3, 15) as $n => $square) {
  echo $n . 'squared is' . $square . '<br>';
}

輸出:

    3 squared is 9
    4 squared is 16
    5 squared is 25
    ...

示例2:

//對某一數(shù)組進行加權(quán)處理
$numbers = array('nike' => 200, 'jordan' => 500, 'adiads' => 800);
//通常方法,如果是百萬級別的訪問量,這種方法會占用極大內(nèi)存
function rand_weight($numbers)
{
  $total = 0;
  foreach ($numbers as $number => $weight) {
    $total += $weight;
    $distribution[$number] = $total;
  }
  $rand = mt_rand(0, $total-1);
  foreach ($distribution as $num => $weight) {
    if ($rand < $weight) return $num;
  }
}
//改用yield生成器
function mt_rand_weight($numbers) {
  $total = 0;
  foreach ($numbers as $number => $weight) {
    $total += $weight;
    yield $number => $total;
  }
}
function mt_rand_generator($numbers)
{
  $total = array_sum($numbers);
  $rand = mt_rand(0, $total -1);
  foreach (mt_rand_weight($numbers) as $num => $weight) {
    if ($rand < $weight) return $num;
  }
}

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

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

相關(guān)文章

  • 深入PHP許愿墻模塊功能分析

    深入PHP許愿墻模塊功能分析

    本篇文章是對PHP實現(xiàn)許愿墻的模塊功能進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • WampServer下安裝多個版本的PHP、mysql、apache圖文教程

    WampServer下安裝多個版本的PHP、mysql、apache圖文教程

    這篇文章主要介紹了WampServer下安裝多個版本的PHP、mysql、apache圖文教程,需要的朋友可以參考下
    2015-01-01
  • PHP模板解析類實例

    PHP模板解析類實例

    這篇文章主要介紹了PHP模板解析類,涉及php針對模板文件的解析與字符串處理的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • PHP chop()函數(shù)講解

    PHP chop()函數(shù)講解

    今天小編就為大家分享一篇關(guān)于PHP chop()函數(shù)講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • PHP 截取字符串 分別適合GB2312和UTF8編碼情況

    PHP 截取字符串 分別適合GB2312和UTF8編碼情況

    主要包括截取GB2312中文字符串,截取utf8編碼的多字節(jié)字符串,UTF-8、GB2312都支持的漢字截取函數(shù),BugFree 的字符截取函數(shù),推薦使用字符串截取功能的朋友。
    2009-02-02
  • 解析thinkphp中的M()與D()方法的區(qū)別

    解析thinkphp中的M()與D()方法的區(qū)別

    本篇文章是對thinkphp中的M()與D()方法的區(qū)別進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • php處理帶有中文URL的方法

    php處理帶有中文URL的方法

    這篇文章主要介紹了php處理帶有中文URL的方法,涉及php編碼轉(zhuǎn)換相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • 淺談PHP模擬發(fā)送POST請求之curl基本使用

    淺談PHP模擬發(fā)送POST請求之curl基本使用

    今天來介紹PHP模擬發(fā)送POST請求的重型武器——cURL函數(shù)庫的使用和其多線程的優(yōu)化方法。說起cURL函數(shù),可謂是老生常談,但網(wǎng)上許多資料都在關(guān)鍵部分語焉不詳,于是筆者翻了些資料,結(jié)合自己的筆記,總結(jié)了這篇文章,希望能給初次接觸cURL的開發(fā)者提供一些幫助。
    2021-05-05
  • php流量統(tǒng)計功能的實現(xiàn)代碼

    php流量統(tǒng)計功能的實現(xiàn)代碼

    用php實現(xiàn)的流量統(tǒng)計功能代碼,本代碼僅供學(xué)習(xí)交流,其中必有不妥之處。請見諒
    2012-09-09
  • php表單請求獲得數(shù)據(jù)求和示例

    php表單請求獲得數(shù)據(jù)求和示例

    這篇文章主要介紹了php表單請求獲得數(shù)據(jù)求和實現(xiàn)代碼,需要的朋友可以參考下
    2014-05-05

最新評論

乾安县| 宁德市| 宜章县| 北京市| 佛坪县| 宝兴县| 临沂市| 成武县| 富锦市| 佛坪县| 密山市| 西乌珠穆沁旗| 壤塘县| 南陵县| 绥阳县| 社会| 安溪县| 三亚市| 大安市| 安福县| 洞口县| 九寨沟县| 马鞍山市| 临湘市| 岳普湖县| 洞口县| 宁远县| 井研县| 呈贡县| 陇西县| 射阳县| 海伦市| 海安县| 嘉定区| 汪清县| 桦川县| 明水县| 门源| 陇南市| 阜新市| 西吉县|