PHP快速定位自定义function函数

        PHP快速定位自定义function函数所在位置的例子。

<?php
    
function a() {
}
 
class b {
    public function f() {
    }
}
 
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('a');
    function_dump(array('b', 'f'));
    $b = new b();
    function_dump(array($b, 'f'));
?>

怎么说呢,好像有好多方法,但是这个感觉还是可以的,调试、二开经常能用到。

其他方法:

用IDE、phpstorm的话, 直接ctrl+鼠标单击.
用普通编辑器, 就整个项目下查找function 函数名.
用反射类 echo (new ReflectionFunction('函数名'))->getFileName()

 

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享