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