(PHP 5, PHP 7)
ReflectionProperty::setValue — Establece el valor de la propiedad
Establece (cambia) el valor de la propiedad.
object
Si la propiedad no fuera estática, se deberá proporcionar un objeto sobre el
que se cambiará la propiedad. Si la propiedad fuera estática, se omite
este parámetro y sólo será necesario completar el value
.
value
El nuevo valor.
No devuelve ningún valor.
Lanza ReflectionException si la propiedad no fuera accesible. Si la propiedad fuera de tipo protegido o privado, podrá hacerse accesible mediante ReflectionProperty::setAccessible().
Ejemplo #1 Ejemplo de ReflectionProperty::setValue()
<?php
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));
?>
El resultado del ejemplo sería:
string(3) "foo" string(3) "bar" string(6) "foobar"