生成器类

(No version information available, might only be in Git)

简介

Generator 对象是从 generators返回的.

Caution

Generator 对象不能通过 new 实例化.

类摘要

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

Table of Contents

User Contributed Notes

Pistachio 05-Feb-2016 12:04
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