1、经过{属性名} 对对象赋值。spa
class Man{ public $name; protected $age; private $address; public function Say($msg) { echo "Say:".$msg; } } //反射 实例化类 $class=new ReflectionClass('Man'); //获取当前类属性 // 默认获取所有属性 // 仅获取私有属性 $class->getProperties( ReflectionProperty::IS_PRIVATE) /* ReflectionProperty::IS_STATIC ReflectionProperty::IS_PUBLIC ReflectionProperty::IS_PROTECTED ReflectionProperty::IS_PRIVATE * */ foreach( $class->getProperties() as $pro) { echo "属性名称:". $pro->getName() ."<br/>"; } foreach( $class->getMethods() as $method) { echo "方法名称:". $method->getName()."<br/>"; } // 判断方法是否为公开 $method = new ReflectionMethod('Man', 'Say'); print_r($method->isPublic()); //判断类中是否包括该方法 $man=new Man(); if( method_exists($man,"Say")) { echo "Man 存在 Say 方法"; }else{ echo "Man 不存在 Say 方法"; } //反射调用 $reflectionMethod = new ReflectionMethod('Man', 'Say'); $reflectionMethod->invoke($man,"被调用了。");