Longhorn PHP 2019 Schedule

Класс Generator

(PHP 5 >= 5.5.0, PHP 7)

Введение

Создание объектов типа Generator описано в разделе Генераторы.

Предостережение

Объекты Generator не могут быть созданы с помощью оператора new.

Обзор классов

Generator implements Iterator {
/* Методы */
public current ( void ) : mixed
public getReturn ( void ) : mixed
public key ( void ) : mixed
public next ( void ) : void
public rewind ( void ) : void
public send ( mixed $value ) : mixed
public throw ( Throwable $exception ) : mixed
public valid ( void ) : bool
public __wakeup ( void ) : void
}

Содержание

add a note add a note

User Contributed Notes 1 note

up
22
Pistachio
3 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