debug_print_backtrace

debug_print_backtrace関数:スタックトレースを出力する

使い方

debug_print_backtrace();

使い方はいたって単純です。その関数を呼び出すだけです。
引数も指定することが可能ですが、多くの場合はいらないと思います。
この関数の引数はPHPのバージョンが5.3.6、また5.4以降で若干変わっていますので
引数を指定する際には注意が必要です。
特に第2引数はPHP5.4以降で指定することが可能になりましたが、
表示するスタックトレースの階層の数を制限することができます。

こんな感じの出力が行われます。

#0  func1() called at [/var/www/phptest/test.php:9]
#1  func2() called at [/var/www/phptest/test.php:13]
#2  func3() called at [/var/www/phptest/test.php:16]

PHPの公式マニュアルではこの関数をこのように説明されています。

debug_print_backtrace() はPHP バックトレースを表示します。関数のコール、include / require されているファイル、そしてeval() された内容などが表示されます。

使いどころ

「このコードってどこから呼び出されたんだろう」と思ったらこれを使いましょう。
ははぁ、こいつからこうやって呼び出されたんだなと言うのがすぐ分かります。
自分はエラーハンドラとかでよく使ったりしてます。
複雑な階層構造をもったライブラリやフレームワークを自分でデバッグする際にも使えます。

※公式サイトなどではバックトレースと書かれていますが、自分はJavaを長くやってきたのでスタックトレースの方がしっくりきます。

公式サイト
http://jp1.php.net/manual/ja/function.debug-print-backtrace.php