PHP函数位于何处?(如在哪个文件中)


Where is a PHP function located in? (as in which file)

可能重复:
如何找出函数的定义位置?

我有一个相当复杂的OOP PHP项目,里面有很多类、库和助手。

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

我想知道是否有一种语言结构、函数甚至外部工具(例如调试器)可以帮助我准确地定位特定函数位于哪个文件和哪行。

例如:

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个文件具有相同名称的不同版本的函数时,它会变得混乱。

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

请参阅http://php.net/reflectionfunction以及类似的相关反射方法。

通常在IDE中,您可以按CTRL+CLICK,它将带您进入函数声明。

或者,如果你只是想要调试输出,你可以在函数中这样做:

echo __FILE__ . ":" . __LINE__;

以下是关于神奇常数的文档