PHP ReflectionProperty::setValue 反射函数
-
定义和用法
ReflectionProperty::setValue - 设置属性值 -
版本支持
PHP4 PHP5 PHP7 不支持 支持 支持 -
语法
ReflectionProperty::setValue( object $object , mixed $value )
或者:ReflectionProperty::setValue( mixed $value )
ReflectionProperty::setValue() 设置(更改)属性的值。 -
参数
参数 必需的 描述 object 是 如果该属性是非静态的,则必须提供一个对象以更改该属性。 如果属性是静态的,则忽略此参数,仅需要提供值。 value 是 新的属性值。 -
返回值
如果属性不可访问,则抛出ReflectionException。 您可以使用ReflectionProperty::setAccessible()使受保护或私有属性可访问。 -
示例
尝试一下class Foo { public static $staticProperty; public $property; protected $privateProperty; } $reflectionClass = new ReflectionClass('Foo'); $reflectionClass->getProperty('staticProperty')->setValue('foo'); var_dump(Foo::$staticProperty); $foo = new Foo; $reflectionClass->getProperty('property')->setValue($foo, 'bar'); var_dump($foo->property); $reflectionProperty = $reflectionClass->getProperty('privateProperty'); $reflectionProperty->setAccessible(true); $reflectionProperty->setValue($foo, 'foobar'); var_dump($reflectionProperty->getValue($foo));
-
相关页面
ReflectionProperty::getValue() - 获得属性值ReflectionProperty::setAccessible() - 设置属性可访问性ReflectionClass::setStaticPropertyValue() - 设置静态属性的值