继续
上次给大家讲了PHP yield 的用法,今天给大家讲讲 yield from。
看到这里来,一定是 PHP.net 看得不过瘾吧,这篇文章一定把 yield from 语法给你讲透彻。
三部曲
语法
function func()
{
yield from $expression;
}
是的,和yield一样,这是一个生成器语法。$expression 是必须(yield 可以为空为NULL),且必须是可迭代对象。
快速上手
小例子1
function yield_from_func()
{
(yield from array(1, 2, 3, 4));
}
foreach (yield_from_func() as $value)
{
echo 'value is : ' . $value . PHP_EOL;
}
运行输出
$ php ./test.php
value is : 1
value is : 2
value is : 3
value is : 4
通过以上例子,可得 yield from 能把个数组(也可以是迭代器)一个个遍历并送出来。
小例子2
function yield_func()
{
yield 1;
yield 2;
yield 3;
}
function yield_from_func2()