yield
關鍵字在 PHP 中用于生成器函數,它的作用是將一個函數轉變為可迭代對象,每次迭代返回一個值,而不是一次性返回所有值。
生成器函數使用 yield
關鍵字來生成值,并在生成值時暫停函數的執行。當再次迭代時,函數將從上次暫停的地方繼續執行,生成下一個值。
使用生成器函數和 yield
的好處是可以節省內存空間,因為它不會一次性生成所有值,而是按需生成。這在處理大量數據或需要逐步獲取結果的情況下非常有用。
下面是一個使用 yield
的示例:
function generateNumbers($start, $end) {
for ($i = $start; $i <= $end; $i++) {
yield $i;
}
}
$numbers = generateNumbers(1, 10);
foreach ($numbers as $number) {
echo $number . " ";
}
輸出結果為:1 2 3 4 5 6 7 8 9 10
。在這個例子中,generateNumbers()
函數使用 yield
來生成從 $start
到 $end
的所有數字,而不是一次性返回一個數組。然后,我們可以使用 foreach
循環來迭代并打印每個數字。
總結來說,yield
的作用是創建可迭代對象,并在每次迭代時生成一個值。它可以節省內存空間,并且非常適用于處理大量數據或需要逐步獲取結果的情況。