PHP возвращаемый тип генератора

Я никогда раньше не использовал генераторы в PHP, и в документации нет примеров, показывающих декларацию возвращаемого типа.

В PhpStorm возникает ошибка в IDE, когда я делаю это:

public function getDataIncrementally(): void {
    yield from [/* some large set of numbers*/];
}

Ошибка:

Генераторы могут объявлять только возвращаемый тип Generator, Iterator или Traversable, или итерируемый, void недопустим.

Я вижу, что дерево наследования Traversable -> Iterator -> Generator, В то же время, iterable это новый псевдотип, представленный в PHP 7.1.

Было бы целесообразно использовать iterable для объявления типа возврата, если мне нужно только поддерживать PHP >= 7.1?

1 ответ

Ваш тип возврата Generator, но вы используете void, Попробуй это

public function getDataIncrementally(): Generator {
    yield from [/* some large set of numbers*/];
}
Другие вопросы по тегам