【发布时间】:2019-07-03 08:52:21
【问题描述】:
我以前从未在 PHP 中使用过生成器,documentation 中没有显示返回类型声明的示例。
在 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 中引入的新伪类型。
如果我只需要支持 PHP >= 7.1,是否适合使用 iterable 作为返回类型声明?
【问题讨论】:
标签: php iterator generator iterable php-generators