PHP Conference Japan 2024

Generator 类

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

简介

Generator 对象由 生成器 返回。

注意

Generator 对象无法通过 new 实例化。

类概要

final class Generator implements Iterator {
/* 方法 */
public current(): 混合
public getReturn(): 混合
public key(): 混合
public next():
public rewind():
public send(混合 $value): 混合
public throw(Throwable $exception): 混合
public valid(): 布尔值
public __wakeup():
}

参见

另请参见 对象迭代

目录

添加注释

用户贡献的注释 1 条注释

45
Pistachio
8 年前
与 return 不同,yield 可以用在函数中的任何位置,因此逻辑可以更自然地流动。例如,以下斐波那契生成器

<?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;
}

// 输出:1 1 2 3 5 8 13 21 34
To Top