W3docs

yield from

The yield from keyword is used in PHP to delegate the generation of values to another generator. This allows you to chain multiple generators together, creating

Введение

Ключевое слово yield from в PHP используется для делегирования генерации значений другому генератору. Это позволяет объединять несколько генераторов в цепочку, создавая своего рода конвейер, который можно использовать для преобразования или фильтрации данных в реальном времени.

Пример

Ниже приведён пример, демонстрирующий использование yield from в PHP:

Пример использования yield from в 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 . " ";
}

В приведённом выше примере мы имеем три функции-генератора: myGenerator(), myOtherGenerator() и myCombinedGenerator(). Первые два генератора возвращают по одному значению, тогда как третий генератор делегирует выполнение первым двум с помощью ключевого слова yield from.

При вызове myCombinedGenerator() сначала возвращаются значения, сгенерированные myGenerator(), а затем — значения из myOtherGenerator(). Таким образом формируется последовательность из трёх значений: "Hello", "World" и "!".

Цикл foreach затем использует myCombinedGenerator() для перебора этой последовательности, выводя результат: "Hello World !".

Ключевое слово yield from может быть особенно полезно при работе с вложенными структурами данных или когда необходимо выполнить серию преобразований над набором данных. Объединяя несколько генераторов в цепочку, вы можете разбить сложные задачи на более простые и удобные части, что делает код более читаемым и поддерживаемым.

Практика

Практика

Каково основное назначение оператора 'yield from' в PHP?