PHP Conference Japan 2024

Generator 類別

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

簡介

Generator 物件由 產生器 返回。

注意

Generator 物件無法透過 new 來實例化。

類別概要

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

另請參閱

另請參閱 物件迭代

目錄

新增註記

使用者貢獻的註記 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