一、通过{属性名} 对对象赋值。
$book=new Book();
$propertyName="name";
$propertyValue="书本名称";
$book->{$propertyName}=$propertyValue;
二、 类的反射使用
参考代码:
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() ."";}foreach( $class->getMethods() as $method){ echo "方法名称:". $method->getName()."";}// 判断方法是否为公开$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,"被调用了。");