资讯专栏INFORMATION COLUMN

php 调试利器debug_backtrace()

testHs / 522人阅读

摘要:是一个很低调的函数很少有人注意过它不过当我对着一个对象调用另一个对象再调用其它的对象和文件中的一个函数出错时它正在一边笑呢。查看整个程序的调用栈,用来查看瞬间函数调用栈,方便查错。如果我们想知道某个方法被谁调用了可以解决。

debug_backtrace() 是一个很低调的函数,很少有人注意过它. 不过当我对着一个对象调用另一个对象再调用其它的对象和文件中的一个函数出错时,它正在一边笑呢。

debug_print_backtrace(), debug_backtrace() 只是前者直接打印出来了而已。查看整个程序的调用栈,用来查看瞬间函数调用栈,方便查错。

如果我们想知道某个方法被谁调用了? debug_backtrace可以解决。debug_backtrace() 可以打印出一个页面的调用过程 , 从哪儿来到哪儿去一目了然. 不过这是一个PHP5的专有函数,好在pear中已经有了实现,http://pear.php.net/package/P...

测试代码

";
    // print_r(debug_backtrace()); 
    print_r(print_message_class());
  } 
} 

class b
{ 
    function say($msg)
    { 
      $a = new a(); 
     $a->say($msg); 
   } 
} 

class c
{ 
   function __construct($msg)
 { 
   $b = new b(); 
   $b->say($msg); 
  } 
} 

$c = new c("test"); 

输出结果:

msg:test 
a.say

将debug_backtrace封装为一个方法,只获取输出类名和方法名:

/**
 * 打印类的标记
 * 
 * @return string
 */
function print_message_class()
{
   $backtrace  = debug_backtrace();
   $class_name = $backtrace[1]["class"];
   $func_name  = $backtrace[1]["function"];
   $message    = "{$class_name}.{$func_name}() ";
   return $message;
}

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

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

相关文章

  • PHP调试之回溯跟踪

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

    Lavender 评论0 收藏0
  • Kint —— 强大、现代、零配置的PHP调试工具

    摘要:是一个强大现代零配置的调试工具。你还在使用和么你该试试。安装使用访问的项目页面了解文档配置及高级用例。 Kint是一个强大、现代、零配置的PHP调试工具。你还在使用var_dump()、print_r()和debug_backtrace()么?你该试试Kint。 showImg(http://segmentfault.com/img/bVbGsT); 安装使用 require /...

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

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

    MoAir 评论0 收藏0
  • PHP基础:异常处理Exception

    摘要:是所有异常的基类。它包含的异常的确是对象,唯一条件就是必须从类继承。在语句中使用所谓的是一关系对类的名字和异常对象做检查。如果异常在任何地方都没能捕获,那么会提供最后的机会异常处理函数。 Exception是所有异常的基类。 Exception { /* 属性 */ protected string $message ; protected int $code ...

    laoLiueizo 评论0 收藏0
  • PHPStorm-Xdebug-Laravel 快速上手

    摘要:是调试的组件是调试利器,在日常开发中排错时其断点调试功能非常有帮助使得我们开发者不用依赖于传统的比较的调试。并且还有一个好处通过我们还可以查看代码运行的逻辑,比如要研究的源码那么这时使用,将会达到事半功倍的效果。 Introduction xdebug是php调试的组件,是调试利器,在日常开发中排错时,其断点调试功能非常有帮助,使得我们开发者不用依赖于传统的var_dump()/ech...

    BenCHou 评论0 收藏0

发表评论

0条评论

testHs

|高级讲师

TA的文章

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