PHPer成长点滴PHP经验分享程序猿阵线联盟-汇总各类技术干货

PHP代码中获取定义函数的文件及其位置

2017-11-29  本文已影响15人  炜哲1120

        昨天在织梦后台排查百度推送401错误的BUG时,需要确定pushBaidu函数定义所在的文件,由于暂时没有拿到FTP账号,需要手动查找该函数的定义位置。结果找了快一个小时没有找到。于是百度出了以下函数,可以定位出函数所在的文件。

函数代码   

        该函数用到了ReflectionMechod,该类是PHP5之后新增的,用来获取一个方法的有关信息。

php.net ReflectionMechod类中的方法

funcion_dump方法代码:

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";

}

上一篇下一篇

猜你喜欢

热点阅读