rin*_*t.6 8 php iterator iterable generator php-generators
我以前从未在 PHP 中使用过生成器,文档中也没有显示返回类型声明的示例。
在 PhpStorm 中,执行此操作时 IDE 中出现错误:
public function getDataIncrementally(): void {
yield from [/* some large set of numbers*/];
}
Run Code Online (Sandbox Code Playgroud)
错误是:
生成器只能声明返回类型为 Generator、Iterator 或 Traversable,或可迭代,不允许使用 void。
我可以看到继承树是Traversable-> Iterator-> Generator。同时,iterable是 PHP 7.1 中引入的一种新的伪类型。
iterable如果我只需要支持 PHP >= 7.1 ,是否适合用于返回类型声明?
您的返回类型是Generator,但您正在使用void. 请尝试以下操作:
public function getDataIncrementally(): \Generator {
yield from [/* some large set of numbers*/];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2032 次 |
| 最近记录: |