PHP debug_backtrace() 関数

インスタンス

PHPのbacktraceを生成します:

<?php
 function a($txt) {
     b("Glenn");
 }
 function b($txt) {
     c("Cleveland");
}
 function c($txt) {
     var_dump(debug_backtrace());
 }
 a("Peter");
 ?> 

上記のコードの出力は以下のようになります:

配列 (
     [0] => 配列 (
         [file] => C:\webfolder\test.php
         [line] => 6
         [function] => c
         [args] => 配列 (
             [0] => Cleveland
         )
     )
     [1] => 配列 (
         [file] => C:\webfolder\test.php
         [line] => 3
         [function] => b
         [args] => 配列 (
             [0] => Glenn
         )
     )
     [2] => 配列 (
         [file] => C:\webfolder\test.php
         [line] => 11
         [function] => a
         [args] => 配列 (
             [0] => Peter
         )
     )
 )

定義と用法

debug_backtrace() 関数は backtrace(回溯跟踪)を生成します。

この関数は debug_backtrace() 関数のコードで生成されたデータを表示します。

関連配列を返します。返される可能性のある要素は以下の通りです:

名前 タイプ 説明
function string 現在の関数名
line integer 現在の行番号
file string 現在のファイル名
class string 現在のクラス名
object object 現在のオブジェクト
type string

現在の呼び出しタイプ。可能な呼び出し:

  • 「->」 - メソッド呼び出しを返します
  • 「::」 - 静的メソッド呼び出しを返します
  • nothing - 関数呼び出しを返します
args array 関数内では、関数の引数を出力します。参照されたファイル内では、参照されたファイル名を出力します。

構文

debug_backtrace(options,limit);
引数 説明
options

オプション。以下のオプションのビットマスクを指定します:

  • DEBUG_BACKTRACE_PROVIDE_OBJECT ("object" のインデックスを埋めるかどうか)
  • DEBUG_BACKTRACE_IGNORE_ARGS ("args" のインデックスを無視するかどうか、すべての function/method の引数を含みます。メモリコストを節約できます。)
limit オプション。返されるスタックフレームの数を制限します。デフォルトは (limit=0) 、すべてのスタックフレームを返します。

技術的な詳細

返り値: None
PHP バージョン: 4.3+
PHP 更新ログ

PHP 5.4:オプションの引数を追加しました limit

PHP 5.3.6:引数 provide_object に変更しました options、およびオプションの引数 DEBUG_BACKTRACE_IGNORE_ARGS を追加しました。

PHP 5.2.5:オプションの引数を追加しました provide_object

PHP 5.1.1:現在の object 可能に戻る要素