理解PHP中的Generator
PHP中Generator,似乎是在5.5版中引入了。 PHP中的协程必须依赖于Generator来实现,所以我觉得有必要先专门写一篇文章介绍Generator。 Generator这个单词在这里对应的中文词语应该是“生成器”,在编程这个领域,我们可以把它想象成一个可以生成一系列数据的工具,这个工具可以具体为一个类、一个函数或者是一个语句(由特殊的关键字构成),而且事实上也确实如此。在PHP中Generator是由函数生成的,但这个函数又跟普通的函数不同,具体有什么不同等会会慢慢道来。 我们先介绍Generator的另外一个特点,这个特点也是 php的官方文档 介绍Generator的第一句话:Generator提供了一种方便的实现简单的Iterator(迭代器)的方式,使用Generator实现Iterator不需要创建一个类来继承Iterator接口。 Iterator接口 所以如果想搞清楚Generator,需要先了解Iterator接口。我们通常使用foreach对数组进行遍历,如果要对对象进行遍历,那么这个对象的类就必须实现 Iterator 接口,并且实现Iterator接口所提供的5个方法: Iterator extends Traversable { /* Methods */ abstract public mixed current ( void ) /