【发布时间】:2021-03-16 19:53:45
【问题描述】:
我需要在同一个函数中使用yield 和yield from,但它似乎无法按预期工作,一旦它只产生最后一个yield from 或yield(最后一个)。
我的代码是(https://3v4l.org/jFDXh):
function yieldItems() {
yield 1;
yield 2;
yield 3;
yield from [4, 5, 6];
yield from [7, 8, 9];
}
var_dump(
iterator_to_array(
yieldItems()
)
);
对于所有 PHP 版本,它只会输出 [ 7, 8, 9 ],但我似乎很清楚应该改为 [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]。
但是,如果我通过foreach 做同样的事情,一切似乎都很正常。貌似是iterator_to_array()相关的问题,其实我需要把这个Generator转成数组。
那么,我错过了什么?
【问题讨论】:
标签: php yield yield-from