我以前从未在 PHP 中使用过生成器,并且文档中没有显示返回类型声明的示例。
在 PhpStorm 中,当我这样做时,IDE 中出现错误:
public function getDataIncrementally(): void {
yield from [/* some large set of numbers*/];
}
错误是:
生成器只能声明返回类型为 Generator、Iterator 或 Traversable,或 iterable,不允许使用 void。
我可以看到继承树是Traversable
-> Iterator
-> Generator
。同时,iterable
是 PHP 7.1 中引入的一种新的伪类型。
iterable
如果我只需要支持 PHP >= 7.1,是否适合用于返回类型声明?