debug_backtrace関数

2162 ワード

簡単に述べる
phpにdebugという関数があることはよく知られているかもしれません.backtraceは、関数の呼び出し情報を追跡することができ、デバッガと言える.
はい、復習してみましょう.
one();

function one() {
    two();
}

function two() {
    three();
}

function three() {
    print_r( debug_backtrace() );
}

/*
  :
Array
(
    [0] => Array
        (
            [file] => D:\apmserv\www\htdocs\test\debug\index.php
            [line] => 10
            [function] => three
            [args] => Array
                (
                )

        )

    [1] => Array
        (
            [file] => D:\apmserv\www\htdocs\test\debug\index.php
            [line] => 6
            [function] => two
            [args] => Array
                (
                )

        )

    [2] => Array
        (
            [file] => D:\apmserv\www\htdocs\test\debug\index.php
            [line] => 3
            [function] => one
            [args] => Array
                (
                )

        )

)
*/

 
ちなみに似たような関数:debug_print_backtraceは、それとは異なり、遡及情報を直接印刷します.
戻ってデバグを見てbacktraceは、名前から見ると用途が明確で、開発者にデバッグに使わせたものです.ある日、返されるfileパラメータに気づき、fileは関数やメソッドの呼び出しスクリプトソース(どのスクリプトファイルで使用されているか)を表します.現在のスクリプトが呼び出しソースを知っている場合、ファイル権限管理、動的ロードなど、このソースによって面白い機能を実現できるかどうか、ふと考えました.