update page now
Laravel Live Japan

The Generator class

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

Introduction

Generator objects are returned from generators.

Caution

Generator objects cannot be instantiated via new.

Class synopsis

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

See Also

See also object iteration.

Table of Contents

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 1 note

up
40
Pistachio
9 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
+add a note

AltStyle によって変換されたページ (->オリジナル) /