欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

php中yield關鍵字的介紹-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)公司主打移動網站、成都網站設計、成都網站制作、網站改版、網絡推廣、網站維護、域名與空間、等互聯(lián)網信息服務,為各行業(yè)提供服務。在技術實力的保障下,我們?yōu)榭蛻舫兄Z穩(wěn)定,放心的服務,根據網站的內容與功能再決定采用什么樣的設計。最后,要實現符合網站需求的內容、功能與設計,我們還會規(guī)劃穩(wěn)定安全的技術方案做保障。

這期內容當中小編將會給大家?guī)碛嘘Pphp中yield關鍵字的介紹,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1、什么yield?

該yield關鍵字從發(fā)電機函數返回數據:

生成器函數的核心是yield關鍵字。以最簡單的形式,yield語句看起來很像return語句,yield不是停止函數的執(zhí)行并返回,而是為循環(huán)生成器的代碼提供一個值,并暫停生成器函數的執(zhí)行。

2、什么是生成器函數?

生成器函數實際上是編寫迭代器的一種更緊湊,更有效的方法。它允許您定義一個函數(您的xrange),該函數將

在 您遍歷該函數時_計算并返回_ 值:

foreach (xrange(1, 10) as $key => $value) {
    echo "$key => $value", PHP_EOL;
}

這將創(chuàng)建以下輸出:

0 => 1
1 => 2
…
9 => 10

您也可以控制$keyforeach使用

yield $someKey => $someValue;

在generator函數中,$someKey是您想要顯示的內容$key$someValue是中的值$val。在問題的示例中為$i

3、與正常功能有何不同?

現在您可能想知道為什么我們不僅僅使用PHP的本機range函數來實現該輸出。是的,你是。輸出將是相同的。區(qū)別在于我們到達那里的方式。

當我們使用rangePHP,將執(zhí)行它,在內存中創(chuàng)建一個數字的整個陣列,并return認為 整個陣列

的foreach循環(huán),然后將去在它和輸出的值。換句話說,foreachwill將對數組本身進行操作。該range功能和foreach唯一的“交談”一次。可以將其想像為通過郵件獲取包裹。送貨員會把包裹交給您,然后離開。然后解開整個包裝,取出里面的任何東西。

當我們使用生成器函數時,PHP將逐步進入該函數并執(zhí)行,直到遇到結尾或yield關鍵字為止。當遇到a時yield,它將把當時的值返回外循環(huán)。然后,它返回到生成器函數,并從產生的地方繼續(xù)。由于您xrange擁有一個for循環(huán),它將執(zhí)行并屈服直到$max達到。想像它foreach和發(fā)生器打乒乓球。

4、我為什么需要那個?

顯然,生成器可用于解決內存限制。根據您的環(huán)境,執(zhí)行range(1, 1000000)遺囑會使您的腳本致命,而對生成器執(zhí)行同樣的操作會很好。或如Wikipedia所述:

由于生成器僅根據需要計算其屈服值,因此它們對于表示昂貴或無法立即計算的序列很有用。這些包括例如無限序列和實時數據流。

發(fā)電機也應該很快。但是請記住,當我們談論快速時,我們通常會以很小的數目交談。因此,在您開始運行并更改所有代碼以使用生成器之前,請進行基準測試以了解在何處有意義。

生成器的另一個用例是異步協(xié)程。該yield關鍵字不僅返回值,但它也接受他們。有關此內容的詳細信息,請參見下面鏈接的兩個出色的博客文章。

5、從什么時候起可以使用yield?

生成器已在 PHP 5.5中

引入。嘗試使用yield該版本之前的版本會導致各種解析錯誤,具體取決于關鍵字后面的代碼。因此,如果您從該代碼中遇到了解析錯誤,請更新您的PHP。

上述就是小編為大家分享的php中yield關鍵字的介紹了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)-成都網站建設公司行業(yè)資訊頻道。

網站名稱:php中yield關鍵字的介紹-創(chuàng)新互聯(lián)
分享路徑:http://www.chinadenli.net/article16/iiodg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊ChatGPT虛擬主機網站建設網站排名營銷型網站建設

廣告

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

網站托管運營