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

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

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

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

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

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ù)組進行加權處理
$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;
  }
}

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

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

相關文章

  • 深入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針對模板文件的解析與字符串處理的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • PHP chop()函數(shù)講解

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

    今天小編就為大家分享一篇關于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編碼轉換相關操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • 淺談PHP模擬發(fā)送POST請求之curl基本使用

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

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

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

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

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

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

最新評論

阳东县| 永安市| 安乡县| 太仓市| 赤水市| 遂宁市| 资阳市| 江西省| 遵义县| 宁阳县| 进贤县| 秦安县| 黄陵县| 得荣县| 巴里| 无极县| 巫溪县| 伊金霍洛旗| 七台河市| 长兴县| 镇沅| 宁德市| 玉屏| 余姚市| 西藏| 南昌县| 铜川市| 临颍县| 三亚市| 通河县| 怀化市| 松潘县| 贵州省| 敖汉旗| 齐河县| 中山市| 大姚县| 宣汉县| 利津县| 东台市| 芜湖市|