可能大家都知道,php中有一个函数叫debug_backtrace,它可以class="dc-title">回溯跟踪函数的调用信息,可以说是一个调试利器。
好,来复习一下。
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,与之不同的是它会直接打印回溯信息。
回来看debug_backtrace,从名字来看用途很明确,是让开发者用来调试的。直到有一天我注意到它返回的file参数,file表示函数或者方法的调用脚本来源(在哪个脚本文件使用的)。忽然我想到,如果当前脚本知道调用来源,那是否可以根据这个来源的不同,来实现一些有趣的功能,比如文件权限管理、动态加载等。