php 调试利器debug_print_backtrace()

  如果我们想知道某个方法被谁调用了? debug_print_backtrace可以解决

  debug_print_backtrace() 可以打印出一个页面的调用过程 , 从哪儿来到哪儿去一目了然.

  不过这是一个PHP5的专有函数,好在pear中已经有了实现,

  http://pear.php.net/package/PHP_Compat

  测试代码

  

复制代码 代码如下:

  <?php

  class a{

  function say($msg) {

  echo "msg:".$msg;

  echo "<pre>";debug_print_backtrace();

  }

  }

  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

  #0 a->say(test) called at [/var/www/test/test0723.php:12]

  #1 b->say(test) called at [/var/www/test/test0723.php:19]

  #2 c->__construct(test) called at [/var/www/test/test0723.php:23]

  相关链接

  http://ch2.php.net/manual/zh/function.debug-print-backtrace.php

  http://ch2.php.net/manual/zh/function.debug-backtrace.php