yield比较适合计算大量的数据,PHP代码运行时节省大量的内存。
官方实例(生成器读取大文件):
function getLines($file) {
$f = fopen($file, 'r');
try {
while ($line = fgets($f)) {
yield $line;
}
} finally {
fclose($f);
}
}
foreach (getLines("file.txt") as $n => $line) {
if ($n > 5) break;
echo $line;
}
网友评论