资讯专栏INFORMATION COLUMN

PHP调试之回溯跟踪

Lavender / 2504人阅读

摘要:前言在我们调试程序过程中,往往可能会出现需要回溯跟踪一个方法,这里我就介绍两个比较不错的函数,也是我经常使用的。内容产生一条回溯跟踪打印一条回溯。

前言

在我们调试程序过程中,往往可能会出现需要回溯跟踪一个方法,这里我就介绍两个比较不错的PHP函数,也是我经常使用的。

内容
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
debug_backtrace — 产生一条回溯跟踪(backtrace)

(PHP 5, PHP 7)
debug_print_backtrace — 打印一条回溯。

这两个看起来有点相似,其实功能也是差不多的,下面我就以一个简单的例子向大家演示下他们的使用。

实例
";
    var_dump($content);
    echo "
"; } /** * Class A */ class A { public function say() { // 这里打印回溯内容 dump(debug_backtrace()); // 调用本身方法打印 debug_print_backtrace(); echo "
"; echo "Hello World!"; } } /** * Class B */ class B { public function sayB(A $obj) { $obj->say(); } } /** * 测试结果 */ $a = new A(); $b = new B(); $b->sayB($a);

下面是运行结果:

array(2) {
  [0]=>
  array(7) {
    ["file"]=>
    string(29) "D:phpStudyWWW	est	est.php"
    ["line"]=>
    int(43)
    ["function"]=>
    string(3) "say"
    ["class"]=>
    string(1) "A"
    ["object"]=>
    object(A)#1 (0) {
    }
    ["type"]=>
    string(2) "->"
    ["args"]=>
    array(0) {
    }
  }
  [1]=>
  array(7) {
    ["file"]=>
    string(29) "D:phpStudyWWW	est	est.php"
    ["line"]=>
    int(52)
    ["function"]=>
    string(4) "sayB"
    ["class"]=>
    string(1) "B"
    ["object"]=>
    object(B)#2 (0) {
    }
    ["type"]=>
    string(2) "->"
    ["args"]=>
    array(1) {
      [0]=>
      object(A)#1 (0) {
      }
    }
  }
}
#0 A->say() called at [D:phpStudyWWW	est	est.php:43] #1 B->sayB(A Object ()) called at [D:phpStudyWWW	est	est.php:52] 
Hello World!

结合代码不难看出,他们着重返回结果集,拆分结构;另一个着重按调用顺序打印出回溯跟踪。

总结

内容就这么多,结果一目了然,其他自己测试下就明了了。

PHP有些方法还是挺不错的,大家平时可以多看看手册。

下面放了他们两的官方链接,有兴趣的可以点击详细看看。

debug_backtrace
debug_print_backtrace

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22827.html

相关文章

  • Java代码审计连载—添油加醋

    摘要:在代码审计中,按业务流程审计当然是必须的,人工的流程审计的优点是能够更加全面的发现漏洞,但是缺点是查找漏洞效率低下。代码审计学习之旅总有人问我代码审计该怎么学习,该从哪学习,现在统一回复,表示我也不知道。。。 在代码审计中,按业务流程审计当然是必须的,人工的流程审计的优点是能够更加全面的发现漏洞,但是缺点是查找漏洞效率低下。如果要定向的查找漏洞,逆向跟踪变量技术就显得更加突出,如查找X...

    dunizb 评论0 收藏0
  • PHP性能测试利器-Xdebug和phpstorm

    摘要:是一个开放源代码的程序调试器即一个工具,可以用来跟踪,调试和分析程序的运行状况。以下为安装示例,安装请参考集成开发和断点调试环境的配置。指令的配置路径必须是绝对路径。 Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。以下为Windows+Phpstorm+Xampp+Xdebug安装示例,MAC安装请参考集成开发和断...

    MoAir 评论0 收藏0
  • XDEBUG 从入门到精通

    摘要:默认关闭如果该设置为,那么将禁用关闭操作符,以便不再隐藏通知警告和错误。将写入垃圾收集统计信息输出的目录,确保将运行的用户具有对该目录的写入权限。此设置确定用于将垃圾回收统计信息转储到的文件的名称。 showImg(https://segmentfault.com/img/bVbgEC5?w=480&h=274); 前言 Xdebug是PHP的扩展,用于协助调试和开发。 它包含一个用...

    leejan97 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<