PHP使用反射機(jī)制實(shí)現(xiàn)查找類和方法的所在位置

字號(hào):


    本文實(shí)例講述了PHP使用反射機(jī)制實(shí)現(xiàn)查找類和方法的所在位置。分享給大家供大家參考,具體如下:
    //參數(shù)1是類名,參數(shù)2是方法名
    $func = new ReflectionMethod('UnifiedOrder_pub', 'getPrepayId');
    //從第幾行開(kāi)始
    $start = $func->getStartLine() - 1;
    //從第幾行結(jié)束
    $end = $func->getEndLine() - 1;
    //獲取路徑地址
    $filename = $func->getFileName();
    下面是摘抄的示例代碼比較全面
    <?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 {
          //這個(gè)應(yīng)該是當(dāng)只有一個(gè)參數(shù)的時(shí)候就看做是本類的發(fā)放吧,大概,自行百度
          $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'));
    ?>
    希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。