ConFoo Montreal 2017 Calling for Papers

La classe Generator

(PHP 5 >= 5.5.0, PHP 7)

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

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

Sommaire

add a note add a note

User Contributed Notes 1 note

up
6
Pistachio
6 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