Middle
¿Cómo funciona un generador en PHP?
sobes.tech AI
Respuesta de la IA
Un generador es una función que devuelve un iterador. Permite recorrer un conjunto de datos sin cargar toda la matriz en memoria, usando la palabra clave yield. En cada llamada a yield, la ejecución de la función se pausa, se devuelve un valor y se guarda el estado de la función. La próxima vez que se llame a next(), la ejecución del iterador continúa desde donde se quedó.
<?php
function numberGenerator($limit) {
for ($i = 1; $i <= $limit; $i++) {
yield $i; // Pausa la ejecución y devuelve el valor
}
}
$numbers = numberGenerator(5);
foreach ($numbers as $number) {
echo $number . " "; // Muestra: 1 2 3 4 5
}
?>
Ventajas:
- Ahorro de memoria: Permite procesar grandes volúmenes de datos sin cargarlos completamente en memoria.
- Carga perezosa: Los valores se generan bajo demanda, cuando se necesitan.
- Mejora del rendimiento para ciertas tareas, como leer archivos grandes.
Se utilizan para iterar sobre colecciones grandes, leer archivos línea por línea, implementar secuencias infinitas.