内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

PHP生成器-動(dòng)態(tài)生成內(nèi)容的數(shù)組方法演示

這篇文章主要為大家詳細(xì)介紹了PHP生成器-動(dòng)態(tài)生成內(nèi)容的數(shù)組方法演示,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。

靖州網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),靖州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為靖州近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的靖州做網(wǎng)站的公司定做!

定義:

1.生成器:“動(dòng)態(tài)生成內(nèi)容的數(shù)組”,用到值的時(shí)候才去生產(chǎn)。

2.搭配使用:關(guān)鍵字 yield foreach

過(guò)程:

1.作為生成器的方法相當(dāng)于定義了一個(gè)數(shù)組;

2.生成器中的 yield,每次出現(xiàn)相當(dāng)于定義了一個(gè)數(shù)組中出現(xiàn)的值;

3.foreach 會(huì)遍歷生成器中所有的 yield 定義的值(某個(gè)被定義的值(表達(dá)式),只有在被用到的時(shí)候,當(dāng)前yield同上一個(gè)yield之間的其他表達(dá)式才會(huì)被執(zhí)行,當(dāng)前yield之后的表達(dá)式不會(huì)被執(zhí)行);

4.foreach 正常結(jié)束的話(不是break),判斷一下生成器中最后一個(gè)yield之后是否有其他表達(dá)式未執(zhí)行完,是的話,執(zhí)行之;

5.不同于線程,不是并行執(zhí)行,只是在主業(yè)務(wù)邏輯和生成器之間來(lái)回切換執(zhí)行,只節(jié)省了空間,時(shí)間沒(méi)省下來(lái)。

PHP生成器-動(dòng)態(tài)生成內(nèi)容的數(shù)組方法演示

設(shè)想使用場(chǎng)景:

1、取大數(shù)據(jù)文件,生成器中逐行讀??;

2、???

例子:

gen.php

 <?php
   function gen()
   {
       echo '生成器開始執(zhí)行' . PHP_EOL;
      for ($i = 0; $i < 5; $i++) {
           echo '產(chǎn)生數(shù)據(jù)之前:' . $i  . PHP_EOL;
           yield $i; 
           echo '產(chǎn)生數(shù)據(jù)之后:' . $i  . PHP_EOL;
       }   
      echo '再來(lái)一個(gè)數(shù)據(jù)' . PHP_EOL;
      yield 5;
      echo '生成器執(zhí)行結(jié)束' . PHP_EOL;
  }   
  $gen_func = gen();
  echo '生成器開始執(zhí)行了嗎?' . PHP_EOL;
  foreach ($gen_func as $key  => $val) {
      echo '使用數(shù)據(jù)前' . PHP_EOL;
      echo '使用數(shù)據(jù):' . $val . PHP_EOL;
      echo '使用數(shù)據(jù)后' . PHP_EOL;
      //if ($key >= 4) {
          //break;
      //} 
  }

執(zhí)行結(jié)果:

php gen.php
生成器開始執(zhí)行了嗎?
生成器開始執(zhí)行
產(chǎn)生數(shù)據(jù)之前:0
使用數(shù)據(jù)前
使用數(shù)據(jù):0
使用數(shù)據(jù)后
產(chǎn)生數(shù)據(jù)之后:0
產(chǎn)生數(shù)據(jù)之前:1
使用數(shù)據(jù)前
使用數(shù)據(jù):1
使用數(shù)據(jù)后
產(chǎn)生數(shù)據(jù)之后:1
產(chǎn)生數(shù)據(jù)之前:2
使用數(shù)據(jù)前
使用數(shù)據(jù):2
使用數(shù)據(jù)后
產(chǎn)生數(shù)據(jù)之后:2
產(chǎn)生數(shù)據(jù)之前:3
使用數(shù)據(jù)前
使用數(shù)據(jù):3
使用數(shù)據(jù)后
產(chǎn)生數(shù)據(jù)之后:3
產(chǎn)生數(shù)據(jù)之前:4
使用數(shù)據(jù)前
使用數(shù)據(jù):4
使用數(shù)據(jù)后
產(chǎn)生數(shù)據(jù)之后:4
再來(lái)一個(gè)數(shù)據(jù)
使用數(shù)據(jù)前
使用數(shù)據(jù):5
使用數(shù)據(jù)后
生成器執(zhí)行結(jié)束

部分執(zhí)行過(guò)程解讀:

1、14行并沒(méi)有調(diào)用生成器gen(),只是做了定義;

2、進(jìn)入 foreach 循環(huán)后,開始調(diào)用gen();

3、$val 需要值的時(shí)候,記住當(dāng)前位置a,執(zhí)行生成器;

4、執(zhí)行到 yield 定義的地方,取到值了,記住當(dāng)前位置b,返回位置a;

5、循環(huán)3、4兩步;

6、循環(huán)結(jié)束,執(zhí)行完 yield 最后一次定義的地方的之后的剩下部分;

7、去掉20、21、22行的注釋后執(zhí)行,"使用數(shù)據(jù):4 使用數(shù)據(jù)后",就不再有其他輸出。

其他(僅驗(yàn)證了PHP7.1.14版本)

1、value);//YES value;//NO

2、可以使用yield val;

3、PHP7之后,yield from 可以調(diào)用生成器、數(shù)組、使用return等。

以上就是PHP生成器-動(dòng)態(tài)生成內(nèi)容的數(shù)組方法演示的簡(jiǎn)略介紹,當(dāng)然詳細(xì)使用上面的不同還得要大家自己使用過(guò)才領(lǐng)會(huì)。如果想了解更多,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道哦!

網(wǎng)頁(yè)名稱:PHP生成器-動(dòng)態(tài)生成內(nèi)容的數(shù)組方法演示
當(dāng)前地址:http://www.rwnh.cn/article10/jgpodo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、營(yíng)銷型網(wǎng)站建設(shè)、商城網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、用戶體驗(yàn)、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
从化市| 金寨县| 柏乡县| 抚顺县| 上杭县| 武胜县| 龙里县| 东海县| 临沧市| 兰州市| 修水县| 泸州市| 湖口县| 株洲市| 咸宁市| 响水县| 禄劝| 富顺县| 庄浪县| 淄博市| 宁明县| 柳江县| 新绛县| 漳平市| 玛曲县| 松滋市| 阜阳市| 临潭县| 囊谦县| 依兰县| 靖西县| 哈尔滨市| 天门市| 铁岭市| 田阳县| 九龙坡区| 惠东县| 静乐县| 丹凤县| 怀远县| 阜阳市|