PHP 產量
PHP的yield關鍵字用於建立生成器函數。它是 PHP 中的內建關鍵字。生成器函數與普通函數相同,除了傳回單一值之外,生成器yield關鍵字根據生成器函數傳回的需要傳回多個值。任何包含yield的函數都是生成器函數。 Generator函數與迭代器相同,都是透過foreach循環進行循環,每次需要一個值時,生成器就會產生一個值; yield 關鍵字與 return 關鍵字相同,只不過不是停止執行。
廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
文法
yield $value;
參數 –
value – 這不是可選的,它指定要傳回的值。
傳回值 – 此方法的回傳值是產生函數中需要傳回的值。
PHP Yield 關鍵字的工作原理
PHP的yield關鍵字在生成器函數中使用來傳回或產生多個值。當生成器函數被呼叫時,它會傳回一個可以迭代的迭代器物件。當我們透過foreach 循環迭代這個物件時,每次需要一個值時,PHP 都會呼叫該物件的迭代方法,然後當生成器函數產生一個值時,生成器函數的狀態將被保存,並恢復以取得下一個值。當沒有要產生的值時,生成器就會退出,並且呼叫程式碼可以在陣列用完值時繼續。
PHP Yield 關鍵字的範例
下面提到了不同的例子:
範例#1 – 產生多個值
接下來,我們編寫 PHP 程式碼,透過以下範例更清楚地理解 PHP Yield 關鍵字,其中 Yield 關鍵字用於從生成器函數產生多個值,如下所示 –
代碼:
<?php // creating function to generate even numbers in between 2 to 10 function gen_even_numbers() { for ($i = 2; $i <= 10; $i+=2) { // Note that $i is preserved between yields. yield $i; } } // calling the gen_even_numbers function $generator = gen_even_numbers(); // iterating over the yeilded values of the gen_even_numbers function print( " The yeilded values of the generator function are : \n "); foreach ($generator as $value) { print( " $value\n "); } ?>
輸出:
如上面的程序,建立了 gen_even_numbers() 函數來找出 2 到 10 之間的偶數,並在迭代呼叫時產生或傳回。在每次迭代中,它都會一一返回值,並且這些值也會顯示出來,正如我們在輸出中看到的那樣。
範例 #2 – iterator_to_array() 方法
接下來,我們編寫PHP程式碼來理解PHP的yield關鍵字,其中yield關鍵字用於從生成器函數產生多個值,並且該生成器函數在另一個生成器函數內部調用,如下所示–
代碼:
<?php // creating function to generate even numbers in between 2 to 10 function gen_even_numbers() { for ($i = 2; $i <= 10; $i+=2) { // Note that $i is preserved between yields. yield $i; } } // creating function to call gen_even_numbers function function call_gen() { yield 2; yield from gen_even_numbers(); yield 10; } // calling the call_gen function $generator = call_gen(); // iterating over the yeilded values of the call_gen function print( " The yeilded values of the generator function by foreach loops are : \n "); foreach ($generator as $value) { print( " $value\n "); } print("<br>"); print( "The yeilded values of the generator function by iterator_to_array are : \n "); var_dump(iterator_to_array(call_gen())); ?>
輸出:
如上面的程序,建立了gen_even_numbers() 函數來尋找並傳回2 到10 之間的偶數,然後使用另一個函數call_gen() 透過使用yield from 來呼叫gen_even_numbers() 函數,其中不重設按鍵。在程式碼的後面,迭代以兩種方式執行。第一種方法是使用 foreach 循環,它在 call_gen() 函數中產生值時會依序迭代值,因此不會重設鍵並取得輸出為 2 2 4 6 8 10 10。使用 iterator_to_array() 方法,該方法預設傳回一個鍵控數組,可能會導致意外結果,我們可以在輸出中看到。
範例 #3 – 參考產生器函數內部
接下來,我們寫PHP程式碼來了解PHP的yield關鍵字,其中yield關鍵字用來引用生成函數內部,如下 –
代碼:
<?php // creating function to generate even numbers in between 2 to 10 function &gen_even_numbers() { $i = 2; while($i <= 10) { // yield does not come out from the loop or function yield $i; $i+=2; } } // calling the gen_even_numbers function $generator = gen_even_numbers(); // iterating over the yeilded values of the call_gen function print( " The yeilded values of the reference generator function are : \n "); foreach ($generator as &$value) { print( " $value\n "); } ?>
輸出:
在上面的程式中,gen_even_numbers()函數是一個參考函數,因為它的前綴是「&」;它用於尋找並傳回 2 到 10 之間的偶數。進一步迭代該函數的返回對象,每次迭代的值都儲存到一個變數中,該變數再次以“&”為前綴。
結論
PHP的yield關鍵字是一個內建關鍵字,用於建立生成器函數或回傳a。
以上是PHP 產量的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

settings.json文件位於用戶級或工作區級路徑,用於自定義VSCode設置。 1.用戶級路徑:Windows為C:\Users\\AppData\Roaming\Code\User\settings.json,macOS為/Users//Library/ApplicationSupport/Code/User/settings.json,Linux為/home//.config/Code/User/settings.json;2.工作區級路徑:項目根目錄下的.vscode/settings

Go中的HTTP日誌中間件可記錄請求方法、路徑、客戶端IP和耗時,1.使用http.HandlerFunc包裝處理器,2.在調用next.ServeHTTP前後記錄開始時間和結束時間,3.通過r.RemoteAddr和X-Forwarded-For頭獲取真實客戶端IP,4.利用log.Printf輸出請求日誌,5.將中間件應用於ServeMux實現全局日誌記錄,完整示例代碼已驗證可運行,適用於中小型項目起步,擴展建議包括捕獲狀態碼、支持JSON日誌和請求ID追踪。

testthepdfinanotherapptoderineiftheissueiswiththefileoredge.2.enablethebuilt inpdfviewerbyTurningOff“ eflblyopenpenpenpenpenpdffilesexternally”和“ downloadpdffiles” inedgesettings.3.clearbrowsingdatainclorwearbrowsingdataincludingcookiesandcachedcachedfileresteroresoreloresorelorsolesoresolesoresolvereresoreorsolvereresoreolversorelesoresolvererverenn

使用guazzleforbusthttprequestswithheadersand andtimeouts.2.parsehtmleffitedlywithsymfonydomcrawlerusingcssselectors.3.handlejavascript-heavysitesby-heavysitesbyintegrationpuppeepetementegratingpuppeeteviaphpage()

要成為Yii大師,需要掌握以下技能:1)理解Yii的MVC架構,2)熟練使用ActiveRecordORM,3)有效利用Gii代碼生成工具,4)掌握Yii的驗證規則,5)優化數據庫查詢性能,6)持續關注Yii生態系統和社區資源。通過這些技能的學習和實踐,可以全面提昇在Yii框架下的開發能力。

VSCode中可通過快捷鍵快速切換面板與編輯區。要跳轉至左側資源管理器面板,使用Ctrl Shift E(Windows/Linux)或Cmd Shift E(Mac);返回編輯區可用Ctrl `或Esc或Ctrl 1~9。相比鼠標操作,鍵盤快捷鍵更高效且不打斷編碼節奏。其他技巧包括:Ctrl KCtrl E聚焦搜索框,F2重命名文件,Delete刪除文件,Enter打開文件,方向鍵展開/收起文件夾。

選擇合適的HTMLinput類型能提升數據準確性、增強用戶體驗並提高可用性。 1.根據數據類型選用對應input類型,如text、email、tel、number和date,可實現自動校驗和適配鍵盤;2.利用HTML5新增類型如url、color、range和search,可提供更直觀的交互方式;3.配合使用placeholder和required屬性,可提升表單填寫效率和正確率,但需注意placeholder不能替代label。

runthewindowsupdatetrubloubleshooterviaSettings>更新&安全> is esseShootsoAtomationfixCommonissues.2.ResetWindowSupDateComponentsByStoppingRealatedServices,RenamingTheSoftWaredWaredWaredSoftwaredSistribution andCatroot2Folders,intrestrestartingthertingthertingtherserviceSteStoceTocle
