北京中科白癜风医院门诊靠谱吗 http://news.39.net/bjzkhbzy/171218/5940536.html背景:我们经常会阅读别人的代码。特别是维护旧项目。有些项目代码写得杂乱,还稍带着用了一些冷门特性。或者,项目本身很复杂,又急于想快速搞定代码执行流程的时候。我们此时就非常想知道PHP代码的调用栈。博主曾经多次帮人快速定位错误,排查指定位置的代码为何会调用一些功能。基于以上原因,今天我们就来讲一讲在PHP项目当中,怎样快速得到PHP调用栈。PHP调用栈,顾名思义就是从我们Web访问项目的时候,PHP从执行开始到返回给我们结果的这一系列操作的PHP类/方法等调用的过程。一、利用XDebug扩展的xdebug_get_function_stack()函数对XDebug扩展了解的同学,可以知道XDebug的功能主要用于代码调试。其中,XDebug就提供了一个非常有用的函数:xdebug_get_function_stack()。从这个函数的的名字我们可以知道它就是获取方法调用栈的。我们只需要在项目当中放到PHP脚本当中,只要这个方法被执行到。那么,这个方法就能打印PHP脚本从开始到执行到这个位置的所有调用栈。从而就能解决我们对代码执行流程不清晰的问题。这个方法会返回一个数组。数据里面包含了执行的脚本文件路径、类名、方法名、参数等信息。注:该方法生成的调用栈信息相对比较粗糙。对于简单初浅调试完成够用了。同时,要使用这个方法,必须安装XDebug扩展。PHP安装XDebug扩展的教程网上很多。这里不赘述。二、利用phptrace扩展查看phptrace是一个追踪(trace)PHP执行流程的工具。这是奇虎团队开源的一款PHP扩展工具。它本身的功能之一就是查看PHP调用栈。所以,推荐指数5颗星。项目开源
转载请注明:http://www.aierlanlan.com/rzfs/5981.html