yield是PHP 5.5引入的一个关键字,用于创建生成器函数。生成器函数是一种特殊的函数,它可以按需生成一系列值,而不是一次性生成所有值并将它们存储在内存中。这可以节省内存并提高性能。
function myGenerator() {
yield "apple";
yield "banana";
yield "orange";
}
$generator = myGenerator();
foreach ($generator as $value) {
echo $value . "\n";
}
myGenerator()
的生成器函数,它使用yield
关键字返回三个不同的值。$generator
,并使用foreach
循环遍历该生成器函数的每个值。在每次迭代期间,我们使用echo语句打印出当前的值。apple
banana
orange
function generateLargeData($start, $end) {
for ($i = $start; $i <= $end; $i++) {
yield $i;
}
}
foreach (generateLargeData(1, 1000000) as $number) {
// do something with each number
}
generateLargeData()
的生成器函数,它使用 yield
来生成从 $start
到 $end
的一系列整数。然后,我们可以使用 foreach
循环来遍历该生成器函数的每个值,而不需要一次性将整个序列存储在内存中。yield
和生成器函数可以在处理大量数据时提高代码性能,并且使代码更加简洁和易于阅读。