PHP错误处理 - debug_backtrace()的用法

#开发过程中,修改代码或者调试代码,想知道问题出现在哪里,往往是一步步的去排除问题。利用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 "\ntest: $str";
                echo "<pre>";
                var_dump(debug_backtrace());
                echo "</pre>";
        }

        public static function backtrace_test1($str) {
                echo "\ntest: $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"
    }
  }
}
*/
 

 

转载于:https://www.cnblogs.com/arnoldlivip/p/10453650.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值