phpday 2025 - Call For Papers

A classe Generator

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

Introdução

Os objetos Generatorsão retornados por geradores.

Cuidado

Os objetos Generator não podem ser instanciados através do construtor new.

Resumo da classe

final class Generator implements Iterator {
/* Métodos */
public current(): mixed
public getReturn(): mixed
public key(): mixed
public next(): void
public rewind(): void
public send(mixed $value): mixed
public throw(Throwable $exception): mixed
public valid(): bool
public __wakeup(): void
}

Veja Também

See also object iteration.

Índice

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
45
Pistachio
8 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
To Top