在 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 中轻松地创建和迭代生成器,从而更有效地处理大量数据或逐步获取结果。