阅读量:0
在 PHP 中,yield
关键字用于创建一个生成器(generator),它允许你在函数中逐个产生一系列值,而不是一次性返回所有值。这在处理大量数据或需要逐步获取结果的场景中非常有用。
以下是如何在 PHP 中使用 yield
进行迭代的示例:
- 创建一个生成器函数:
function simpleGenerator() { yield 1; yield 2; yield 3; }
- 使用生成器函数进行迭代:
foreach (simpleGenerator() as $value) { echo $value . PHP_EOL; }
输出:
1 2 3
- 创建一个更复杂的生成器函数,该函数从数组中逐个产生值:
function arrayGenerator($array) { foreach ($array as $value) { yield $value; } } $myArray = [4, 5, 6, 7, 8]; foreach (arrayGenerator($myArray) as $value) { echo $value . PHP_EOL; }
输出:
4 5 6 7 8
- 使用生成器函数处理大量数据:
function largeDataGenerator($count) { for ($i = 1; $i <= $count; $i++) { yield $i; sleep(1); // 模拟耗时操作 } } foreach (largeDataGenerator(5) as $value) { echo $value . PHP_EOL; }
输出(每次输出之间会有 1 秒的延迟):
1 2 3 4 5
通过使用 yield
,你可以在 PHP 中轻松地创建和迭代生成器,从而更有效地处理大量数据或逐步获取结果。