国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

klinson / 519人閱讀

摘要:定義生成器動(dòng)態(tài)生成內(nèi)容的數(shù)組,用到值的時(shí)候才去生產(chǎn)。其他僅驗(yàn)證了版本可以使用之后,可以調(diào)用生成器數(shù)組使用等。傳送門手冊(cè)里都有

定義:

生成器:“動(dòng)態(tài)生成內(nèi)容的數(shù)組”,用到值的時(shí)候才去生產(chǎn)。
搭配使用:關(guān)鍵字 yield foreach

過程:

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

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

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

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

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

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

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

例子:
  gen.php
  1  $val) {
 17     echo "使用數(shù)據(jù)前" . PHP_EOL;
 18     echo "使用數(shù)據(jù):" . $val . PHP_EOL;
 19     echo "使用數(shù)據(jù)后" . PHP_EOL;
 20     //if ($key >= 4) {
 21         //break;
 22     //} 
 23 }
執(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
再來一個(gè)數(shù)據(jù)
使用數(shù)據(jù)前
使用數(shù)據(jù):5
使用數(shù)據(jù)后
生成器執(zhí)行結(jié)束
部分執(zhí)行過程解讀:

1、14行并沒有調(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、$data = (yield $value);//YES $data = yield $value;//NO
2、可以使用yield $key => $val;
3、PHP7之后,yield from 可以調(diào)用生成器、數(shù)組、使用return等。
(傳送門:PHP手冊(cè)里都有)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/28755.html

相關(guān)文章

  • PHP內(nèi)存模型

    摘要:為單進(jìn)程的由代執(zhí)行每一個(gè)請(qǐng)求由從進(jìn)程池中取出進(jìn)程初始化數(shù)據(jù)結(jié)構(gòu)創(chuàng)建進(jìn)程變量共享類似于的內(nèi)容為所有進(jìn)程所共享即單例模式默認(rèn)是采用磁盤文件實(shí)現(xiàn)的管理即變量是一次請(qǐng)求說單獨(dú)的享有的不能被所有請(qǐng)求所共享共享由于每次請(qǐng)求代由創(chuàng)建進(jìn)程所以由共享問題是使 php為單進(jìn)程的,由apache代執(zhí)行,每一個(gè)請(qǐng)求,由apache從進(jìn)程池中取出進(jìn)程,初始化數(shù)據(jù)結(jié)構(gòu),創(chuàng)建進(jìn)程. 變量共享,類似于session的...

    Maxiye 評(píng)論0 收藏0
  • (PHP7內(nèi)核剖析-8) 類

    摘要:父類方法為錯(cuò)誤,成員方法不得被重寫。父子類方法靜態(tài)屬性不一致父類方法為非靜態(tài)而子類的是靜態(tài)或相反,錯(cuò)誤。 1.類的結(jié)構(gòu) 類是編譯階段的產(chǎn)物,而對(duì)象是運(yùn)行時(shí)產(chǎn)生的,它們歸屬于不同階段。編譯完成后我們定義的每個(gè)類都會(huì)生成一個(gè)zend_class_entry,它保存著類的全部信息,在執(zhí)行階段所有類相關(guān)的操作都是用的這個(gè)結(jié)構(gòu), struct _zend_class_entry { ch...

    JohnLui 評(píng)論0 收藏0
  • ajax概述

    摘要:換一臺(tái)電腦就要重新安裝。并且還需要適配不同的系統(tǒng)。提交大小幾乎沒有限制。即協(xié)議主要由請(qǐng)求和響應(yīng)組成。相反則為同步按照程序的順序,依次往下執(zhí)行,必須等上一程序執(zhí)行完成之后才能執(zhí)行下一程序,阻礙程序的執(zhí)行。 Ajax 服務(wù)器 類型 按照服務(wù)類型:文件服務(wù)器,數(shù)據(jù)庫服務(wù)器,郵件服務(wù)器,Web服務(wù)器 按照操作系統(tǒng):Linux服務(wù)器,Windows服務(wù)器 按照應(yīng)用軟件:Apache服務(wù)器,Ng...

    Achilles 評(píng)論0 收藏0
  • 基于 Swoole 構(gòu)建 CTF AWD 比賽環(huán)境搭建與實(shí)踐

    摘要:出題思路本次題目來自于我的一個(gè)外包項(xiàng)目實(shí)踐。回合制比賽以分鐘為一回合。選手在比賽過程中需要盜取到對(duì)手的密鑰,以竊聽他方內(nèi)容,并修改己方密鑰以放泄露動(dòng)態(tài)該部分同樣由中心服務(wù)器與完成。 Author: RytiaDate: 20190427Blog: www.zzfly.net本人才學(xué)疏淺,望君不吝賜教 背景 受學(xué)校老師邀請(qǐng),為學(xué)弟學(xué)妹舉辦分享會(huì)介紹 AWD 相關(guān)經(jīng)驗(yàn),本人一時(shí)頭腦風(fēng)暴采用...

    GitCafe 評(píng)論0 收藏0
  • php底層原理之變量(一)

    摘要:對(duì)于來說,變量有全局變量和局部變量之分那么,他們都是存儲(chǔ)到一個(gè)哈希表內(nèi)了么其實(shí)不是的,變量存儲(chǔ)也有作用域的概念。 上次跟大家講了垃圾回收機(jī)制后,有些小伙伴對(duì)底層原理比較感興趣,私信問我了一些關(guān)于變量的相關(guān)知識(shí),既然大家對(duì)變量比較感興趣,那么這次我們來系統(tǒng)的講一下變量的底層原理 變量結(jié)構(gòu) 首先,我們還是先擺上我們的zval結(jié)構(gòu)體,即php所有變量都會(huì)以zval結(jié)構(gòu)體的形式實(shí)現(xiàn) struc...

    curlyCheng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<