《modern php》的note1-php5.5 yield

阅读更多

在看《modern php》,区区200页的东西,看的我神清气爽

还是来尽量总结一下吧,免得看了又忘掉

 

yield

官方介绍 http://php.net/manual/zh/language.generators.syntax.php

php5.5以上可用

 

简单来说,对我自己的主要用处

1 读文件的时候可以不用一次性全读入,只读一行

2 db取行的时候,可以一行行取

虽然速度都是慢了,但是可以避免内存溢出。

 

理解上,每一个yield相当于一次return

 

要注意官方的第4个例子

我怎么觉得像闭包?我的个天。

 

 

 0) {
        yield $value;
    }
}

/* 
 * 我们可以在循环中修改$number的值,而生成器是使用的引用值来生成,所以gen_reference()内部的$value值也会跟着变化。
 */
foreach (gen_reference() as &$number) {
    echo (--$number).'... ';
}
?>

 

 

以上例程会输出:

2... 1... 0...

 

你可能感兴趣的:(php,yield)