码迷,mamicode.com
首页 > Web开发 > 详细

PHP错误处理 - 跟踪代码调用

时间:2019-02-28 22:51:21      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:扩展   port   static   过程   tin   参数   方法   nbsp   VID   

#开发过程中,修改代码或者调试代码,想知道问题出现在哪里,往往是一步步的去排除问题。利用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"
    }
  }
}
*/
 

 

PHP错误处理 - 跟踪代码调用

标签:扩展   port   static   过程   tin   参数   方法   nbsp   VID   

原文地址:https://www.cnblogs.com/arnoldlivip/p/10453650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!