Aller au contenu

yield from

Introduction

Le mot-clé yield from est utilisé en PHP pour déléguer la génération de valeurs à un autre générateur. Cela vous permet de chaîner plusieurs générateurs, créant ainsi une sorte de pipeline qui peut être utilisé pour transformer ou filtrer des données en temps réel.

Exemple

Voici un exemple qui illustre l'utilisation de yield from en PHP :

Exemple 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 . " ";
}

Dans l'exemple ci-dessus, nous avons trois fonctions générateurs : myGenerator(), myOtherGenerator() et myCombinedGenerator(). Les deux premiers générateurs produisent chacun une seule valeur, tandis que le troisième générateur délègue aux deux premiers en utilisant le mot-clé yield from.

Lorsque myCombinedGenerator() est appelé, il émet d'abord les valeurs générées par myGenerator(), puis il émet les valeurs générées par myOtherGenerator(). Cela crée une séquence de trois valeurs : "Hello", "World" et "!".

La boucle foreach utilise ensuite myCombinedGenerator() pour itérer sur la séquence de valeurs, produisant la sortie suivante : "Hello World !".

Le mot-clé yield from peut être particulièrement utile lors du travail avec des structures de données imbriquées ou lorsque vous devez effectuer une série de transformations sur un ensemble de données. En chaînant plusieurs générateurs, vous pouvez décomposer des problèmes complexes en parties plus simples et plus gérables, rendant votre code plus facile à lire et à maintenir.

Pratique

Quelle est l'utilisation principale de l'instruction 'yield from' en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.