在PHP5.5引入生成器的概念。生成器每执行一次就得到一个yield标识的值。在PHP7中,当生成器迭代完成后,可以获取该生成器。通过Generator::get()得到。
<?php
function generator() {
yield 1;
yield 2;
yield 3;
return "a";
}
$generatorClass = ("generator")();
foreach ($generatorClass as $val) {
echo $val.” “;
}
echo $generatorClass->getReturn();输出为:1 2 3 a
生成器中引入其他生成器
在生成器中可以引入另一个或几个生成器,只需要写yield from functionName1
<?php
function generator1(){
yield 1;
yield 2;
yield from generator2();
yield from generator3();
}
function generator2(){
yield 3;
yield 4;
}
function generator3(){
yield 5;
yield 6;
}
foreach (generator1() as $val){
echo $val, " ";
}输出:1 2 3 4 5 6
| 欢迎光临 一起源码网 (https://www.171739.xyz/) | Powered by Discuz! X3.3 |