怎么在PHP中使用debug_backtrace方法跟踪调试代码

  介绍

这篇文章给大家介绍怎么在PHP中使用debug_backtrace方法跟踪调试代码,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

debug_backtrace方法说明

产生一条回溯跟踪(回溯)

阵列debug_backtrace (int[$选项=DEBUG_BACKTRACE_PROVIDE_OBJECT [int限制美元=0]])

<强>参数

<强>选择

DEBUG_BACKTRACE_PROVIDE_OBJECT
是否填充“对象”的索引。

DEBUG_BACKTRACE_IGNORE_ARGS
是否忽略“参数”的索引,包括所有的函数/方法的参数,能够节省内存开销。

<强>限制

这个参数能够用于限制返回堆栈帧的数量,默认为(限制=0),返回所有堆栈帧。

<强>返回值

返回一个包含众多关联数组的阵列,可能返回的元素:

名字类型说明functionstring当前的函数名,参见:__FUNCTION__.lineinteger当前的行号参。见:__LINE__.filestring当前的文件名。参见:__FILE__.classstring当前类的名称。参见__CLASS__objectobject当前的object.typestring当前调用的类型。如果是一个方法,会返回“→”。如果是一个静态方法,会返回“::“。如果是一个函数调用,则返回空.argsarray如果在一个函数里,这会列出函数的参数。如果是在一个被包含的文件里,会列出包含的文件名。

实例

获取订单的用户资料及用户讯息,调用流程是指数→订单→→用户信息,最后返回整理后的信息。

假设我们调试时发现消息的数据有误,则可以在消息使用<代码> debug_backtrace 方法,查看调用的流程及调用的参数,检查哪一步出现问题。

使用<代码> DEBUG_BACKTRACE_IGNORE_ARGS>

<强>索引。php

& lt; php ?   require  & # 39; order.php& # 39;;//,获取用户订单资料   时间=order_id 美元;1000000;   $ oOrder =, new 秩序;   美元$ order_info =, oOrder→get_order ($ order_id);   ?在

<强>订单。php

& lt; php ?   require  & # 39; user.php& # 39;;//,订单资料   {class 顺序   ,//获取订单资料   ,function  get_order (order_id美元){   时间=美元才能user_id  1001;//,才能获取用户资料   时间=美元才能oUser  new 用户;=美元才能user_info 配偶→美元get_user ($ user_id);//,才能订单资料   时间=美元才能order_info 阵列(   ,,& # 39;order_id& # 39;,=祝辞,order_id美元,   ,,& # 39;order_name& # 39;,=祝辞,& # 39;my 订单# 39;   ,,& # 39;user_info& # 39;,=祝辞,user_info美元,   ,,);   return 才能;order_info美元;   ,}   }   ?在

<强>用户。php

& lt; php ?   require  & # 39; message.php& # 39;;//,用户资料   class 用户{   ,//获取用户资料   ,function  get_user (user_id美元){//,才能获取用户讯息   时间=美元才能oMessage  new 信息;   时间=美元才能user_message 美元oMessage→get_message ($ user_id);   时间=美元才能user_info 阵列(   ,,,& # 39;user_id # 39;,=祝辞,user_id美元,   ,,,& # 39;名字# 39;,=祝辞,& # 39;fdipzone& # 39;   ,,,& # 39;消息# 39;,=祝辞user_message美元   ,,);   return 才能;user_info美元;   ,}   }   ?在

<强>消息。php

& lt; php ?//,用户讯息   {class 消息   ,//获取用户讯息   ,function  get_message (user_id美元){   时间=美元才能message 阵列(   ,,阵列(& # 39;id # 39;=祝辞;1,& # 39;标题# 39;=祝辞& # 39;消息1 # 39;),   ,,阵列(& # 39;id # 39;=祝辞;2,& # 39;标题# 39;=祝辞& # 39;message2& # 39;),   ,,);//才能,加入跟踪调试   时间=美元才能backtrace  debug_backtrace ();   var_dump(回溯)美元才能;   return 才能;美元消息;   ,}   }   祝辞;

运行索引。php,输出

/信息。php: 15:
数组(大?3)
,0=祝辞
,,,数组(大?7)
,,,,,& # 39;文件# 39;=比;字符串& # 39;/user.php& # 39;(长度=9)
,,,,,& # 39;行# 39;=比;int 12
,,,,,& # 39;函数# 39;=比;字符串& # 39;get_message& # 39;(长度=11)
,,,,,& # 39;类# 39;=比;字符串& # 39;消息# 39;(长度=7)
,,,,,& # 39;对象# 39;=在
,,,,,,,对象(消息)[3]
,,,,,& # 39;类型# 39;=比;字符串& # 39;→& # 39;(长度=2)
,,,,,& # 39;args # 39;=在
,,,,,,,数组(大?1)
,,,,,,,,,0=比;int 1001
,1=祝辞
,,,数组(大?7)
,,,,,& # 39;文件# 39;=比;字符串& # 39;/order.php& # 39;(长度=10)

怎么在PHP中使用debug_backtrace方法跟踪调试代码