这篇文章给大家介绍怎么在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> 代码则会忽略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方法跟踪调试代码