$class = new ReflectionClass('Person');

<?php
class Person {
    protected $name;
    protected $age;

    public function getName() {
            return $this->name;
    }

    public static function getAge() {
        return $this->age;
    }
}
//我们只需要把类名’Person’传给ReflectionClass即可得到Person的反射。
$class = new ReflectionClass('Person');
$instance  = $class->newInstanceArgs();
$properties = $class->getProperties();
foreach( $properties as $pro ) {
    echo $pro->getName()."\n";
}
echo '<br>','----------------------','<br>';
$method = $class->getMethods();
var_dump($method);
echo '----------------------','<br>';
$getName = $method[0];
$getName->invoke($instance);
//或者
$instance->getName();
name age 
----------------------
array (size=2)
  0 => &
    object(ReflectionMethod)[5]
      public 'name' => string 'getName' (length=7)
      public 'class' => string 'Person' (length=6)
  1 => &
    object(ReflectionMethod)[6]
      public 'name' => string 'getAge' (length=6)
      public 'class' => string 'Person' (length=6)
----------------------

 

posted @ 2018-01-31 17:32  sky20080101  阅读(46)  评论(0)    收藏  举报