php查找已定义函数定义的位置

发布于 2021-08-02  3560 次阅读



function function_dump($funcname) {
try {
    if(is_array($funcname)) {
        $func = new ReflectionMethod($funcname[0], $funcname[1]);
        $funcname = $funcname[1];
    } else {
        $func = new ReflectionFunction($funcname);
    }
} catch (ReflectionException $e) {
    echo $e->getMessage();
return;
}
$start = $func->getStartLine() - 1;
$end =  $func->getEndLine() - 1;
$filename = $func->getFileName();
echo "function $funcname defined by $filename($start - $end)\n";
}

调用方法:
function_dump(函数名)
例如


<? function func1(){};
 function function_dump($funcname) 
{
 try { 
if(is_array($funcname)) {
 $func = new ReflectionMethod($funcname[0], $funcname[1]); $funcname = $funcname[1]; 
 }else { $func = new ReflectionFunction($funcname); }
 } catch (ReflectionException $e) {
 echo $e->getMessage();
 return;
}
$start = $func->getStartLine() - 1;
$end =  $func->getEndLine() - 1;
$filename = $func->getFileName();
return "function $funcname defined by $filename($start - $end)\n";
}
echo function_dump(func1);

运行结果:function func1 defined by /box/script.php(1 - 1)
(function 函数名 defined by [php文件位置]([定义起点] - [定义终点]))

最后更新于 2021-08-02