PHP错误处理 - 跟踪代码调用
Posted 李晓东的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP错误处理 - 跟踪代码调用相关的知识,希望对你有一定的参考价值。
#开发过程中,修改代码或者调试代码,想知道问题出现在哪里,往往是一步步的去排除问题。利用debug_backtrace整个过程的调用过程,并能回溯到最开始调用的地方,便于开发和排查。 #说明:debug_backtrace ([int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [,int $limit = 0 ]]) : array 产生一条回溯跟踪 #参数: options #options: DEBUG_BACKTRACE_IGNORE_ARGS 是否忽略 "args" 的索引,包括所有的 function/method 的参数,能够节省内存开销。 #options: DEBUG_BACKTRACE_PROVIDE_OBJECT 是否填充 "object" 的索引 #参数: limit 截至 5.4.0,这个参数能够用于限制返回堆栈帧的数量。 默认为 (limit=0) ,返回所有的堆栈帧 #返回值:返回一个包含众多关联的array #array: __FUNCTION__ 方法名称 #array: __FILE__ 文件名称 #array: __LINE__ 行数 #array: __CLASS__ 类名称 #array: type 当前调用的类型。如果是一个方法,会返回 "->"。如果是一个静态方法,会返回 "::"。 如果是一个函数调用,则返回空。 #array: args 如果在一个函数里,这会列出函数的参数。 如果是在一个被包含的文件里,会列出包含的文件名。 /** * php扩展 - 错误处理 * debug_backtrace 产生一条回溯跟踪 */ class backtrace{ public function backtrace_test($str) { echo " test: $str"; echo "<pre>"; var_dump(debug_backtrace()); echo "</pre>"; } public static function backtrace_test1($str) { echo " test: $str"; echo "<pre>"; var_dump(debug_backtrace()); echo "<pre/>"; } } $backtrace = new backtrace(); $backtrace->backtrace_test("debug_backtrace"); $backtrace::backtrace_test1("debug_backtrace1"); /* 打印结果: test: debug_backtrace array(1) { [0]=> array(7) { ["file"]=> string(36) "/var/www/laravel/error_reporting.php" ["line"]=> int(23) ["function"]=> string(14) "backtrace_test" ["class"]=> string(9) "backtrace" ["object"]=> object(backtrace)#1 (0) { } ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> string(15) "debug_backtrace" } } } test: debug_backtrace1 array(1) { [0]=> array(6) { ["file"]=> string(36) "/var/www/laravel/error_reporting.php" ["line"]=> int(24) ["function"]=> string(15) "backtrace_test1" ["class"]=> string(9) "backtrace" ["type"]=> string(2) "::" ["args"]=> array(1) { [0]=> string(16) "debug_backtrace1" } } } */
以上是关于PHP错误处理 - 跟踪代码调用的主要内容,如果未能解决你的问题,请参考以下文章