joshdifabio 从技术上讲是正确的,但我认为这不是错误。你不能重绕生成器,而这正是 append 迭代器所做的。
如果你想将 AppendIterator 与生成器一起使用,只需用 NoRewindIterator 包装它们
<?php
function foo() {
foreach ([] as $foo) {
yield $foo;
}
}
$append = new AppendIterator();
$append->append(new NoRewindIterator(foo()));
var_dump(iterator_to_array($append));
https://3v4l.org/pgiXB