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"

  }

}
复制代码

你可能感兴趣的:(PHP)