php反射类

class Foo
{
    private function priFunc(){}
    protected function proFunc(){}
    public function pubFunc(){}
}
 
function get_class_all_methods($class){
    $r = new ReflectionClass($class);//反射类
    foreach($r->getMethods() as $key=>$methodObj){
        if($methodObj->isPrivate())
            $methods[$key]['type'] = 'private';
        elseif($methodObj->isProtected())
            $methods[$key]['type'] = 'protected';
        else
            $methods[$key]['type'] = 'public';
            $methods[$key]['name'] = $methodObj->name;
            $methods[$key]['class'] = $methodObj->class;
    }
    return $methods;
}
 
$methods = get_class_all_methods('Foo');
var_dump($methods);
复制代码

 

运行结果:

复制代码
array(3) {
  [0]=>
  array(3) {
    ["type"]=>
    string(7) "private"
    ["name"]=>
    string(7) "priFunc"
    ["class"]=>
    string(3) "Foo"
  }
  [1]=>
  array(3) {
    ["type"]=>
    string(9) "protected"
    ["name"]=>
    string(7) "proFunc"
    ["class"]=>
    string(3) "Foo"
  }
  [2]=>
  array(3) {
    ["type"]=>
    string(6) "public"
    ["name"]=>
    string(7) "pubFunc"
    ["class"]=>
    string(3) "Foo"
  }
}
复制代码
posted @ 2013-03-22 10:39  火腿骑士  阅读(149)  评论(0编辑  收藏  举报