【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 式が使用されていることを示す整数定数です。