Php/docs/function.debug-backtrace

提供:Dev Guides
< Php
移動先:案内検索

debug_backtrace

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

debug_backtraceバックトレースを生成する


説明

debug_backtrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [, int $limit = 0 ]] ) : array

debug_backtrace() は PHP バックトレースを生成します。


パラメータ

options

PHP 5.3.6 以降、このパラメータは次のオプションのビットマスクとなります。

debug_backtrace() のオプション
DEBUG_BACKTRACE_PROVIDE_OBJECT "object" インデックスを埋めるかどうか。
DEBUG_BACKTRACE_IGNORE_ARGS "args" インデックス、

すなわちすべての関数/メソッドの引数を省略してメモリを節約するかどうか。

5.3.6 より前のバージョンでは true あるいは false しか指定できませんでした。これは DEBUG_BACKTRACE_PROVIDE_OBJECT オプションを指定するかしないかを意味します。

limit

5.4.0 以降、このパラメータを使ってスタックフレームの数を制限できるようになりました。 デフォルト (limit=0) は、すべてのスタックフレームを返します。


返り値

連想配列の配列を返します。連想配列の要素として返される可能性があるものは以下のとおりです。

debug_backtrace() から返される可能性がある要素
名前 説明
function string カレントの関数名。

__FUNCTION__ も参照してください。

line int カレントの行番号。

__LINE__ も参照してください。

file string カレントのファイル名。

__FILE__ も参照してください。

class string カレントのクラス名。

__CLASS__ も参照してください。

object object カレントのオブジェクト
type string カレントのコール方式。メソッド呼び出しの場合は "->"、

静的なメソッド呼び出しの場合は "::" が返されます。 関数呼び出しの場合は何も返されません。

args array 関数の内部の場合、関数の引数のリストとなります。

インクルードされたファイル内では、 読み込まれたファイルの名前となります。


例1 debug_backtrace() の例

<?php// ファイル名: /tmp/a.phpfunction a_test($str){    echo "\nHi: $str";    var_dump(debug_backtrace());}a_test('friend');?><?php// ファイル名: /tmp/b.phpinclude_once '/tmp/a.php';?>

/tmp/b.php を実行した際の結果は以下のようになります。


Hi: friend
array(2) {
[0]=>
array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(6) "friend"
    }
}
[1]=>
array(4) {
    ["file"] => string(10) "/tmp/b.php"
    ["line"] => int(2)
    ["args"] =>
    array(1) {
      [0] => string(10) "/tmp/a.php"
    }
    ["function"] => string(12) "include_once"
  }
}

参考