yield 方式写法跟这种调用的写法什么区别?
//普通方式
function getLines($file){
$file = fopen($file,'r');
try{
while(! feof($file)){
$line = fgets($file);
show($line);
}
}finally{
fclose($file);
}
}
function show($line){
echo $line.'<br>';
}
$data = getLines('1.csv');
//生成器方式
function getLines($file){
$file = fopen($file,'r');
try{
while(! feof($file)){
$line = fgets($file);
yield $line;
}
}finally{
fclose($file);
}
}
$data = getLines('1.csv');
foreach($data as $n=>$line){
echo $line.'<br>';
}
三国纷争
一只名叫tom的猫
元芳怎么了