日期:2014-05-17  浏览次数:20566 次

类文件方法过程截取.请问用什么方法比较快呢?
我现在想到的方法
只有3种
1.使用 fopen while(feof) 获取 { } 数量截取方法体内容.
2.使用 explode('function',fopen)
3.递归 和 1. 差不多没什么区别。

我想问有什么方法比较快的呢?
例如
PHP code

<?php
class a
{
    public function a(){echo a;}
    /*b*/
    public function b()
    {echo b;}
    //c
    public function c(){
       echo c;
    }
}
?>


例子上方法体内容可能比较简单. 实际比较复杂.
请问有什么方法可以 更容易获取 方法体内容过程吗??
在这里先谢谢啦

------解决方案--------------------
get_class_methods($cls);
------解决方案--------------------
反射结合数组截取
PHP code
class a
{
    public function a(){echo a;    }
    /*b*/
    public function b(){
        echo b;
    }
    //c
    public function c(){
       echo c;
    }
}

$class = new ReflectionClass('a');
$method=$class->getMethod('b');
$filename=$method->getFileName();//获取文件名
$start=$method->getStartLine();//获取方法起始行
$length=$method->getEndLine()-$start;//获取方法体长度

$source=file($filename);
$code = implode('',array_slice($source,$start-1,$length+1));
echo $code;

/*     public function b(){
        echo b;
    } */