ReflectionProperty::setValue
(PHP 5, PHP 7)
ReflectionProperty::setValue — プロパティの値を設定する
説明
public ReflectionProperty::setValue
( object $object
, mixed $value
) : void
public ReflectionProperty::setValue
( mixed $value
) : void
プロパティの値を設定 (変更) します。
パラメータ
object
- 静的でないプロパティの場合は、プロパティを変更したいオブジェクトを指定しなければなりません。 静的なプロパティの場合はこのパラメータを省略し、
value
だけを指定しなければなりません。 value
- 新しい値。
返り値
値を返しません。
エラー / 例外
プロパティにアクセスできない場合に ReflectionException をスローします。 protected や private なプロパティにアクセスするには、 ReflectionProperty::setAccessible() を使います。
例
例1 ReflectionProperty::setValue() の例
<?phpclass 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));?>
上の例の出力は以下となります。
string(3) "foo" string(3) "bar" string(6) "foobar"
参考
- ReflectionProperty::getValue() - 値を取得する
- ReflectionProperty::setAccessible() - プロパティのアクセス範囲を設定する
- ReflectionClass::setStaticPropertyValue() - 静的なプロパティの値を設定する