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
) は、すべてのスタックフレームを返します。
返り値
連想配列の配列を返します。連想配列の要素として返される可能性があるものは以下のとおりです。
名前 | 型 | 説明 |
---|---|---|
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" } }