PHP生成器函数解释

3
我正在尝试理解PHP生成器函数的逻辑,到目前为止,我已经知道生成器函数与普通函数完全相同,但您可以使用yield关键字任意多次以便提供要迭代的值。而这不能通过返回关键字来实现。
它是否类似于返回数组?
我们在哪些情况下需要生成器?

我认为文档已经很清楚地解释了生成器相对于迭代器或基于数组的方法的优势。那么,你到底在文档中遇到了什么问题? - arkascha
请将以下与编程有关的内容从英语翻译成中文。只返回翻译后的文本:简单明了的解释,同时配以来自经验丰富的例子 :) - lotfio
文档实际上提供了相当不错的示例。 - arkascha
1个回答

7
一个生成器允许您在不首先创建一个数组来保存所有值的情况下循环遍历一系列的值。如果序列永远不会结束(当达到某些条件时使用break退出循环),或者创建所有数组元素需要很长时间或使用大量内存,则此功能非常有用。
生成器不会将所有值收集到数组中,而是在需要时计算每个值,并使用yield产生该值。
文档中有一个示例,展示了使用生成器的range()函数的变体,因此您可以处理非常大的范围而不使用大量内存。请参考文档

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接