在 PHP 中,yield
關(guān)鍵字用于創(chuàng)建一個生成器(generator),它允許你在函數(shù)中逐個產(chǎn)生一系列值,而不是一次性返回所有值。這在處理大量數(shù)據(jù)或需要逐步獲取結(jié)果的場景中非常有用。
以下是如何在 PHP 中使用 yield
進(jìn)行迭代的示例:
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 中輕松地創(chuàng)建和迭代生成器,從而更有效地處理大量數(shù)據(jù)或逐步獲取結(jié)果。