PHP函数在哪里? (如在哪个文件中)

时间:2012-07-17 13:18:47

标签: php debugging

  

可能重复:
  How to find out where a function is defined?

我有一个相当复杂的OOP PHP项目,有许多类,库和帮助程序可供使用。

在调试时,我有时发现当它存在于不同的文件或类中时,很难找到特定函数的哪个实例被使用,而且如果不查看整个代码,我就无法确定包含哪个类或库点。

我想知道是否有语言构造,功能甚至是外部工具(例如调试器),它可以帮助我准确定位哪个文件以及特定功能位于哪一行。

E.g。类似的东西:

moditem(25); // How I call the function usually
echo locate_function('moditem');

显示如下内容:

Function moditem() is located in file: lib/users.php, line 234.

这是一个片段:

...
return TRUE;
}

function moditem($id){
    $modify = $this->modify($id);
    return $modify;
}
...

我的IDE有一种方法可以引导我进入函数声明,但是当我有20个文件具有相同名称的不同版本的函数时会让我感到困惑。

2 个答案:

答案 0 :(得分:13)

$ref = new ReflectionFunction('moditem');
echo $ref->getFileName();

参见http://php.net/reflectionfunction和类似的相关反思方法。

答案 1 :(得分:0)

通常在IDE中,您可以按CTRL + CLICK,它会带您进入功能声明。

或者,如果您只想要调试输出,可以在函数中执行此操作:

echo __FILE__ . ":" . __LINE__;

Here are the docs on the magic constants