欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學堂PHP培訓之yield關鍵字功能與用法分析

2019-01-04 15:32:45 1344瀏覽

今天扣丁學堂PHP培訓老師給大家介紹一下關于PHP yield關鍵字功能與用法,首先yield關鍵字是php5.5版本推出的一個特性。生成器函數(shù)的核心是yield關鍵字。它最簡單的調用形式看起來像一個return申明,不同之處在于普通return會返回值并終止函數(shù)的執(zhí)行,而yield會返回一個值給循環(huán)調用此生成器的代碼并且只是暫停執(zhí)行生成器函數(shù)。



Example#1一個簡單的生成值的例子

<?php
function gen_one_to_three() {
  for ($i = 1; $i <= 3; $i++) {
    //注意變量$i的值在不同的yield之間是保持傳遞的。
    yield $i;
  }
}
$generator = gen_one_to_three();
foreach ($generator as $value) {
  echo "$value\n";
}
?>

簡單來說就是:yield是僅僅是記錄迭代過程中的一個過程值

補充示例:

示例2:

/**
 * 計算平方數(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
    ...

示例3:

//對某一數(shù)組進行加權處理
$numbers = array(‘nike‘ => 200, ‘jordan‘ => 500, ‘adiads‘ => 800);
//通常方法,如果是百萬級別的訪問量,這種方法會占用極大內存
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培訓之yield關鍵字功能與用法分析的詳細介紹,希望對同學們有所幫助,想要了解更多關于PHP開發(fā)方面內容的小伙伴,請關注扣丁學堂PHP培訓官網、微信等平臺,扣丁學堂IT職業(yè)在線學習教育平臺為您提供權威的PHP開發(fā)視頻教程,除此之外扣丁學堂還有PHP從入門到精通的學習路線圖供大家參考哦??鄱W堂PHP技術交流群:374332265。



【關注微信公眾號獲取更多學習資料】

 

查看更多關于“php培訓資訊”的相關文章>>

標簽: PHP培訓 PHP視頻教程 PHP在線視頻 PHP學習視頻

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部