Перейти к содержимому

yield

Введение

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

Пример

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

Пример использования ключевого слова yield в PHP

php
<?php

function myGenerator()
{
  yield "Hello";
  yield "World";
  yield "!";
}

foreach (myGenerator() as $value) {
  echo $value . " ";
}

В приведенном выше примере функция myGenerator() определена как генератор с использованием ключевого слова yield. Функция возвращает последовательность значений: "Hello", "World" и "!". При вызове функции она не выполняется немедленно. Вместо этого она возвращает объект генератора, который можно использовать для перебора последовательности значений.

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


console
Результат выполнения кода: "Hello World !".

Генераторы могут быть полезны при работе с большими наборами данных или выполнении сложных вычислений, которые в противном случае потребляют много памяти или вычислительных ресурсов. Генерируя значения по мере необходимости вместо всех сразу, генераторы помогают писать более эффективный и масштабируемый код на PHP.

Практика

Какова функция ключевого слова 'yield' в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.