打印执行的PHP代码(代码路径)

打印执行的PHP代码(代码路径),php,xdebug,Php,Xdebug,我有一个脚本,有很多嵌套的include和函数,它们通过很多if条件相互调用。基本上,这是一场编码噩梦 有什么方法可以“打印”执行的PHP代码吗?我的意思是,打印代码的实际流程以及脚本从头到尾所采用的路径?您可以尝试或 此外,我建议使用。它在异常情况下打印非常有用的堆栈跟踪(您可以将其配置为打印出每个方法参数和每个局部变量(xdebug.collect_params=4和xdebug.show_local_vars=on配置参数).看看工具。这允许您识别脚本运行时实际执行的那些函数和代码行。PH

我有一个脚本,有很多嵌套的include和函数,它们通过很多if条件相互调用。基本上,这是一场编码噩梦

有什么方法可以“打印”执行的PHP代码吗?我的意思是,打印代码的实际流程以及脚本从头到尾所采用的路径?

您可以尝试或


此外,我建议使用。它在异常情况下打印非常有用的堆栈跟踪(您可以将其配置为打印出每个方法参数和每个局部变量(
xdebug.collect_params=4
xdebug.show_local_vars=on
配置参数).

看看工具。这允许您识别脚本运行时实际执行的那些函数和代码行。

PHP无法立即执行。您需要在PHP开发机器上安装。一旦安装,您可以使用来确定执行了哪些行

缺少这一点,我将创建一个简单的调试函数,将其包含在代码的顶部

public function myDebugString($string)
{
    file_put_contents('/tmp/debug.log',"$string\n",FILE_APPEND);
    return;
}
然后在整个代码中添加对此的调用

myDebugString('Called at ' . __LINE__);
删除调试语句是编辑器完成后的一个简单的查找/替换操作


许多框架都有调试对象,它们的功能远不止此,但如果您处理的是独立代码,像这样简单的东西应该足以让您通过。

是的,它可以!debug_backtrace()Xdebug将为他提供生成cachegrind文件的可能性。debug\u backtrace函数很有用,但它们只在任何给定时间返回调用堆栈。听起来OP希望逐行跟踪他的代码,这意味着像Xdebug这样更高级的工具。