Saltar al contenido

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
<?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?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.