Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】T_YIELD_FROM定数の使い方

T_YIELD_FROM定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

T_YIELD_FROM定数は、PHP言語の内部処理において、特定の構文要素を識別するために用いられるトークン定数です。具体的には、PHP 7.0で導入されたyield from構文を表します。

yield from構文は、PHPのジェネレータ機能の一部であり、他のジェネレータやTraversableオブジェクトに処理を委譲する際に使用されます。これにより、ジェネレータのコードをより簡潔に記述し、再利用性を高めることができます。例えば、複数のデータソースから段階的に値を取り出すような複雑な処理を、複数のジェネレータを連結して実装する際に役立ちます。

このT_YIELD_FROM定数そのものは、PHPのパーサー(構文解析器)やコンパイラといったPHPエンジン内部の処理で利用されます。PHPソースコードが実行可能形式に変換される過程で、yield fromというキーワードが検出された際に、この定数で表されるトークンとして扱われます。

一般的なPHPアプリケーション開発者が直接このT_YIELD_FROM定数を利用する機会はほとんどありません。しかし、PHPの内部構造を深く理解したい場合や、PHPコードを解析・変換する独自のツール(例えば、静的解析ツールやコード整形ツールなど)を開発する際には、このようなトークン定数の存在と役割を理解しておくことが重要になります。PHPがどのようにソースコードを解釈し、実行していくのかを学ぶ上で、この定数はPHPの構文解析の仕組みの一端を示しています。

構文(syntax)

1<?php
2function createGenerator() {
3    yield 1;
4    yield 2;
5}
6
7function delegateGenerator() {
8    // T_YIELD_FROM が示す構文
9    yield from createGenerator();
10    yield 3;
11}
12
13foreach (delegateGenerator() as $value) {
14    echo $value . "\n";
15}
16?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

T_YIELD_FROM は、ジェネレーター内で yield from 式が使用されていることを示す整数定数です。

関連コンテンツ