PHP 5.6.29 Released

A classe Generator

(PHP 5 >= 5.5.0, PHP 7)

Introdução

Os objetos Generatorsão retornados por geradores.

Cuidado

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

Sinopse da classe

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

Índice

add a note add a note

User Contributed Notes 1 note

up
7
Pistachio
10 months 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