debug_backtrace
(PHP 4 >= 4.3.0, PHP 5)
debug_backtrace — バックトレースを生成する
説明
array debug_backtrace
([ int
$options = DEBUG_BACKTRACE_PROVIDE_OBJECT
[, int $limit = 0
]] )debug_backtrace() は PHP バックトレースを生成します。
パラメータ
-
options -
PHP 5.3.6 以降、このパラメータは次のオプションのビットマスクとなります。
5.3.6 より前のバージョンではdebug_backtrace() のオプション DEBUG_BACKTRACE_PROVIDE_OBJECT "object" インデックスを埋めるかどうか。 DEBUG_BACKTRACE_IGNORE_ARGS "args" インデックスを無視してすべての関数/メソッドの引数をメモリに格納するかどうか。 TRUEあるいはFALSEしか指定できませんでした。これはDEBUG_BACKTRACE_PROVIDE_OBJECTオプションを指定するかしないかを意味します。 -
limit -
5.4.0 以降、このパラメータを使ってスタックフレームの数を制限できるようになりました。 デフォルト (
limit=0) は、すべてのスタックフレームを返します。
返り値
連想配列の配列を返します。連想配列の要素として返される可能性があるものは以下のとおりです。
| 名前 | 型 | 説明 |
|---|---|---|
| function | string | カレントの関数名。 __FUNCTION__ も参照してください。 |
| line | integer | カレントの行番号。 __LINE__ も参照してください。 |
| file | string | カレントのファイル名。 __FILE__ も参照してください。 |
| class | string | カレントのクラス名。 __CLASS__ も参照してください。 |
| object | object | カレントのオブジェクト。 |
| type | string | カレントのコール方式。メソッド呼び出しの場合は "->"、 静的なメソッド呼び出しの場合は "::" が返されます。 関数呼び出しの場合は何も返されません。 |
| args | array | 関数の内部の場合、関数の引数のリストとなります。 インクルードされたファイル内では、 読み込まれたファイルの名前となります。 |
変更履歴
| バージョン | 説明 |
|---|---|
| 5.4.0 |
オプションのパラメータ limit が追加されました。
|
| 5.3.6 |
provide_object パラメータが options
パラメータに変わり、オプション
DEBUG_BACKTRACE_IGNORE_ARGS が追加されました。
|
| 5.2.5 |
オプションのパラメータ provide_object が追加されました。
|
| 5.1.1 | 現在のオブジェクトを返せるようになりました。 |
例
例1 debug_backtrace() の例
<?php
// ファイル名: /tmp/a.php
function a_test($str)
{
echo "\nHi: $str";
var_dump(debug_backtrace());
}
a_test('friend');
?>
<?php
// ファイル名: /tmp/b.php
include_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"
}
}