Estoy tratando de obtener la lógica de las funciones del generador de php , lo que obtuve hasta ahora es que una función de generador es exactamente como una función normal, pero puede usar la palabra clave yield tantas veces como sea necesario para proporcionar los valores para ser iterado. y esto no se puede hacer con la palabra clave de retorno.
¿Es como devolver una matriz?
¿Dónde necesitamos generadores?
Un generador le permite recorrer una secuencia de valores sin crear primero una matriz para contenerlos a todos. Esto es útil si la secuencia nunca finaliza (usa break para salir del ciclo cuando se alcanza algún criterio) o si tomaría mucho tiempo o usaría mucha memoria para crear todos los elementos de la matriz.
En lugar de recopilar todos los valores en una matriz, el generador calcula cada valor según sea necesario y utiliza el yield para producir este valor.
Hay un ejemplo en la documentación que muestra una variación de la función range() que usa un generador, por lo que puede procesar rangos muy grandes sin usar mucha memoria.