La classe Generator

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

Introduction

Les objets Generator sont retournés depuis des générateurs.

Attention

Les objets Generator ne peuvent pas être instanciés via le mot clé new.

Synopsis de la classe

final class Generator implements Iterator {
/* Méthodes */
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
}

Voir aussi

Voir aussi l'itération d'objet.

Sommaire

add a note add a note

User Contributed Notes 1 note

up
25
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