yield from
Introducción
La palabra clave yield from se utiliza en PHP para delegar la generación de valores a otro generador. Esto te permite encadenar varios generadores, creando una especie de tubería (pipeline) que se puede usar para transformar o filtrar datos sobre la marcha.
Ejemplo
A continuación se muestra un ejemplo que demuestra el uso de yield from en PHP:
Ejemplo de yield from en PHP
<?php
function myGenerator()
{
yield "Hello";
yield "World";
}
function myOtherGenerator()
{
yield "!";
}
function myCombinedGenerator()
{
yield from myGenerator();
yield from myOtherGenerator();
}
foreach (myCombinedGenerator() as $value) {
echo $value . " ";
}En el ejemplo anterior, tenemos tres funciones generadoras: myGenerator(), myOtherGenerator() y myCombinedGenerator(). Los dos primeros generadores producen cada uno un valor, mientras que el tercer generador delega en los dos primeros utilizando la palabra clave yield from.
Cuando se llama a myCombinedGenerator(), primero devuelve los valores generados por myGenerator(), y luego devuelve los valores generados por myOtherGenerator(). Esto crea una secuencia de tres valores: "Hello", "World" y "!".
El bucle foreach utiliza luego myCombinedGenerator() para iterar sobre la secuencia de valores, produciendo la salida: "Hello World !".
La palabra clave yield from puede ser especialmente útil al trabajar con estructuras de datos anidadas o cuando necesitas realizar una serie de transformaciones en un conjunto de datos. Al encadenar varios generadores, puedes dividir problemas complejos en piezas más simples y manejables, lo que facilita la lectura y el mantenimiento de tu código.
Práctica
¿Cuál es el uso principal de la sentencia 'yield from' en PHP?