phpデバッガdebug_backtrace()

1263 ワード

debug_backtrace()は控えめな関数で、注意したことがある人は少ない.しかし、あるオブジェクトに対して別のオブジェクトを呼び出し、他のオブジェクトとファイルの関数を呼び出すエラーが発生したとき、笑っていました.
debug_print_backtrace(), debug_backtrace()は前者が直接印刷されただけです.プログラム全体の呼び出しスタックを表示し、瞬間関数呼び出しスタックを表示し、エラーを検出しやすい.
もし私たちが誰に呼び出されたか知りたいなら?debug_backtraceは解決できます.debug_backtrace()は、ページの呼び出しプロセスを印刷することができ、どこからどこへ行くかが一目瞭然である.しかし、これはPHP 5の固有関数であり、pearではすでに実現されています.http://pear.php.net/package/P...
テストコード
";
    // print_r(debug_backtrace()); 
    print_r(print_message_class());
  } 
} 

class b
{ 
    function say($msg)
    { 
      $a = new a(); 
     $a->say($msg); 
   } 
} 

class c
{ 
   function __construct($msg)
 { 
   $b = new b(); 
   $b->say($msg); 
  } 
} 

$c = new c("test"); 

出力結果:
msg:test 
a.say

debug_backtraceはメソッドとしてカプセル化され、出力クラス名とメソッド名のみが取得されます.
/**
 *       
 * 
 * @return string
 */
function print_message_class()
{
   $backtrace  = debug_backtrace();
   $class_name = $backtrace[1]['class'];
   $func_name  = $backtrace[1]['function'];
   $message    = "{$class_name}.{$func_name}() ";
   return $message;
}