Set property value

- « ReflectionProperty::setAccessible

- ReflectionProperty::__toString »

- PHP Manual
- ReflectionProperty
- Set property value

# ReflectionProperty::setValue

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::setValue — Set property value

### Description

public ReflectionProperty::setValue(object `$object`, mixed `$value`): void
public ReflectionProperty::setValue(mixed `$value`): void

Sets (changes) the property's value.

> Note: As of PHP 8.3.0, calling this method with a single argument is deprecated, use ReflectionClass::setStaticPropertyValue() instead.

### Parameters

`object`

  If the property is non-static an object must be provided to change the property on. If the property is static a value of `null` must be to be provided.

`value`

  The new value.

### Return Values

No value is returned.

### Changelog

Version | Description
--- | ---
8.3.0 | Calling this method with a single argument is deprecated, ReflectionClass::setStaticPropertyValue() should be used instead to modify static properties.
8.1.0 | Private and protected properties can be accessed by ReflectionProperty::setValue() right away. Previously, they needed to be made accessible by calling ReflectionProperty::setAccessible(); otherwise a ReflectionException was thrown.

### Examples

Example #1 ReflectionProperty::setValue() example

    <?phpclass Foo {    public static $staticProperty;        public $property;    protected $privateProperty;}$reflectionClass = new ReflectionClass('Foo');// As of PHP 8.3, setValue should no longer be used to set static property value, use setStaticPropertyValue() instead$reflectionClass->setStaticPropertyValue('staticProperty', '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); // only required prior to PHP 8.1.0$reflectionProperty->setValue($foo, 'foobar');var_dump($reflectionProperty->getValue($foo));?>

The above example will output:

    string(3) "foo"
    string(3) "bar"
    string(6) "foobar"

### See Also

- ReflectionProperty::getValue() - Gets value
- ReflectionProperty::setAccessible() - Set property accessibility
- ReflectionClass::setStaticPropertyValue() - Sets static property value