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

【PHP8.x】ReflectionGenerator::getTrace()メソッドの使い方

getTraceメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

getTraceメソッドは、ReflectionGeneratorクラスに属し、ジェネレータの現在の実行状態におけるコールスタックトレースを取得するメソッドです。PHPにおいてジェネレータは、yieldキーワードを用いて値を生成し、必要に応じて実行を一時停止・再開できる特別な関数です。このgetTraceメソッドは、ジェネレータが一時停止しているその瞬間に、プログラムがどのような関数の呼び出し経路をたどってその状態に至ったのかという、詳細な履歴情報を配列として提供します。

具体的には、このメソッドは、ジェネレータが最後にyield式を実行して中断した時点までの、関数やメソッドの呼び出し履歴を配列形式で返します。返される配列の各要素は、特定の呼び出しに関する情報、例えば、呼び出しが行われたファイル名、その行番号、関数の名前、渡された引数などを含んでいます。これにより、ジェネレータの内部動作をデバッグしたり、実行フローを解析したりする際に、その中断時の状況を詳細に把握することが可能になります。システムエンジニアを目指す方にとって、特に複雑なアプリケーションの動作を理解し、問題を特定する上で非常に有用なツールとなるでしょう。PHP 8環境で利用できます。

構文(syntax)

1<?php
2function myGeneratorExample() {
3    yield 'data';
4}
5
6$generator = myGeneratorExample();
7$reflectionGenerator = new ReflectionGenerator($generator);
8$trace = $reflectionGenerator->getTrace();
9?>

引数(parameters)

int $options = DEBUG_BACKTRACE_IGNORE_ARGS

  • int $options = DEBUG_BACKTRACE_IGNORE_ARGS: バックトレースの取得方法を指定する整数。デフォルトは DEBUG_BACKTRACE_IGNORE_ARGS で、引数を含めずに取得します。

戻り値(return)

array

このメソッドは、Generator の実行コンテキストにおけるコールスタック(関数呼び出しの履歴)を表す連想配列を返します。各要素には、関数名、ファイル名、行番号などが含まれます。

関連コンテンツ