(PHP 5, PHP 7, PHP 8)
ReflectionProperty::setValue — Définit la valeur de la propriété
Définit (modifie) la valeur de la propriété.
object
L'objet à utiliser dans le cas d'une propriété non statique.
Si la propriété est statique, nul besoin de préciser un objet, seul
value
est nécessaire.
value
La nouvelle valeur.
Aucune valeur n'est retournée.
Version | Description |
---|---|
8.1.0 | Les propriétés privées et protégées sont immédiatement accessibles par ReflectionProperty::setValue(). Auparavant, elles devaient être rendues accessibles en appelant ReflectionProperty::setAccessible(), sinon une ReflectionException était déclenchée. |
Exemple #1 Exemple avec 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); // Seulement nécessaire avant PHP 8.1.0.
$reflectionProperty->setValue($foo, 'foobar');
var_dump($reflectionProperty->getValue($foo));
?>
L'exemple ci-dessus va afficher :
string(3) "foo" string(3) "bar" string(6) "foobar"