面向对象进阶之:生成器 yield

/**
 * 使用Yield读取大文件.
 */
function getRows($file) {
  $handle = fopen($file, 'rb');
  while (feof($handle) === false) {
    yield fgetcsv($handle);
  }
  fclose($handle);
}

foreach(getRows('mycsv.csv') as $row) {
  print $row;
}