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

作者: 炜哲1120 | 来源:发表于2017-11-29 09:59 被阅读15次

            昨天在织梦后台排查百度推送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";

    }

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/byxubxtx.html