我正在尝试理解PHP生成器函数的逻辑,到目前为止,我已经知道生成器函数与普通函数完全相同,但您可以使用yield关键字任意多次以便提供要迭代的值。而这不能通过返回关键字来实现。它是否类似于返回数组?我们在哪些情况下需要生成器?
一个生成器允许您在不首先创建一个数组来保存所有值的情况下循环遍历一系列的值。如果序列永远不会结束(当达到某些条件时使用break退出循环),或者创建所有数组元素需要很长时间或使用大量内存,则此功能非常有用。生成器不会将所有值收集到数组中,而是在需要时计算每个值,并使用yield产生该值。文档中有一个示例,展示了使用生成器的range()函数的变体,因此您可以处理非常大的范围而不使用大量内存。请参考文档。