這篇文章主要介紹了關於php yield 的作用,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
function createRange($number){ for($i=0;$i<$number;$i++){ yield time(); } }$result = createRange(10); // 这里调用上面我们创建的函数 foreach($result as $value){ sleep(1); echo $value.'<br />'; }
首先呼叫 createRange 函數,傳入參數10,但是 for 值執行了一次然後停止了,並且告訴 #foreach 第一次循環可用的值。
# foreach 開始對 $result循環,進來先 sleep(1) ,然後開始使用 for 給予的一個值執行輸出。
# foreach 準備第二個循環,在開始第二個循環之前,它向
for 循環又請求了一次。for 循環於是又執行了一次,將產生的時間戳告訴
foreach .##################foreach 拿到第二個值,並且輸出。由於 foreach 中 sleep(1) ,所以, for 迴圈延遲了1秒產生目前時間
#所以,整個程式碼執行中,總是只有一個記錄值參與循環,記憶體中也只有一則訊息。
無論開始傳入的 $number 有多大,由於不會立即產生所有結果集,所以記憶體總是循環的值。
相關推薦:
以上是php yield 的作用的詳細內容。更多資訊請關注PHP中文網其他相關文章!