Php/docs/reflectionproperty.setvalue

提供:Dev Guides
< Php
移動先:案内検索

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"

参考