如果我们想知道某个方法被谁调用了? debug_print_backtrace可以解决
debug_print_backtrace() 可以打印出一个页面的调用过程 , 从哪儿来到哪儿去一目了然.
不过这是一个PHP5的专有函数,好在pear中已经有了实现,
http://pear.php.net/package/PHP_Compat
测试代码
<BR><?php <BR>class a{ <BR>function say($msg) { <BR>echo "msg:".$msg; <BR>echo "<pre class="prettyprint linenums">";debug_print_backtrace(); <BR>} <BR>} <br><br>class b { <BR>function say($msg) { <BR>$a = new a(); <BR>$a->say($msg); <BR>} <BR>} <br><br>class c { <BR>function __construct($msg) { <BR>$b = new b(); <BR>$b->say($msg); <BR>} <BR>} <br><br>$c = new c("test"); <BR>
输出结果
<BR>msg:test <BR>#0 a->say(test) called at [/var/www/test/test0723.php:12] <BR>#1 b->say(test) called at [/var/www/test/test0723.php:19] <BR>#2 c->__construct(test) called at [/var/www/test/test0723.php:23] <BR>
相关链接
http://ch2.php.net/manual/zh/function.debug-print-backtrace.ph来@源gao*daima.com搞@代#码网搞gaodaima代码p
http://ch2.php.net/manual/zh/function.debug-backtrace.php