PHP 8.6.0 Beta 1 is available for testing

Класс Generator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Введение

Объекты класса Generator возвращаются генераторами.

Предостережение

Объекты Generator нельзя создать через ключевое слово new.

Обзор класса

final class Generator implements Iterator {
/* Методы */
public function current (): mixed
public function getReturn (): mixed
public function key (): mixed
public function next (): void
public function rewind (): void
public function send (mixed $value): mixed
public function throw (Throwable $exception): mixed
public function valid (): bool
public function __wakeup (): void
}

Смотрите также

Смотрите также раздел «Итераторы объектов».

Содержание

  • Generator::current — Получает текущее значение генератора
  • Generator::getReturn — Получает значение, которое возвращает генератор
  • Generator::key — Получает ключ сгенерированного элемента
  • Generator::next — Возобновляет работу генератора
  • Generator::rewind — Выполняет генератор до первого выражения yield
  • Generator::send — Отправляет значение в генератор
  • Generator::throw — Бросает исключение в генератор
  • Generator::valid — Проверяет, закрыт ли итератор
  • Generator::__wakeup — Играет роль callback-функции при сериализации генератора

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей 1 note

up
39
Pistachio
10 years ago
Unlike return, yield can be used anywhere within a function so logic can flow more naturally. Take for example the following Fibonacci generator:
<?php
function fib($n)
{
 $cur = 1;
 $prev = 0;
 for ($i = 0; $i < $n; $i++) {
 yield $cur;
 $temp = $cur;
 $cur = $prev + $cur;
 $prev = $temp;
 }
}
$fibs = fib(9);
foreach ($fibs as $fib) {
 echo " " . $fib;
}
// prints: 1 1 2 3 5 8 13 21 34
+Добавить

AltStyle によって変換されたページ (->オリジナル) /