日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php群发不用foreach,如何在没有foreach的情况下使用PHP生成器?

發布時間:2024/1/23 php 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php群发不用foreach,如何在没有foreach的情况下使用PHP生成器? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一個產生的價值沒有被吞噬,你只是從來沒有看過它.

$g = powGenerator();

echo $g->current(); //a

你然后兩次發送值并恢復執行,$g-> valid()在此之后為真,因為你沒有在第三次收益后恢復 – 發電機不完整而且可能還有更多要做的事情.考慮:

function powGenerator() {

yield pow((yield 'a'), (yield 'b'));

echo "Okay, finishing here now!\n";

}

$g = powGenerator();

echo $g->current(), "\n"; //a

echo $g->send(10), "\n"; //b

echo $g->send(2), "\n"; //100

$g->next(); // Resumes execution of the generator,

// which prints its own message and completes.

var_dump($g->valid()); //false

這個’輸出:

a

b

100

Okay, finishing here now!

bool(false)

function powGenerator() {

return pow((yield 'a'), (yield 'b'));

echo "This will never print.";

}

$g = powGenerator();

echo $g->current(), "\n"; //a

echo $g->send(10), "\n"; //b

echo $g->send(2), "\n"; // Prints just the newline, you're moving on

// to a return which you must get explicitly.

var_dump($g->valid()); // Generator complete, you're free to get the return.

echo $g->getReturn(), "\n";

哪個輸出:

a

b

bool(false)

100

至于在沒有foreach的情況下單步執行它們 – Generator實現了Iterator,所以它有適當的方法來處理它:current,key,next,rewind和valid.有一點需要注意,如果你調用它,它將引發異常已經開始的發電機.

這樣做的一個例子也演示了PHP 7的新generator delegation:

function letterGenerator() {

yield from range('a', 'z');

}

$g = letterGenerator();

while ($g->valid()) {

echo $g->current();

$g->next();

}

輸出:

abcdefghijklmnopqrstuvwxyz

總結

以上是生活随笔為你收集整理的php群发不用foreach,如何在没有foreach的情况下使用PHP生成器?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。