ReflectionProperty::setValue
Устанавливает значение свойству
&reftitle.description;
public voidReflectionProperty::setValue
objectobject
mixedvalue
public voidReflectionProperty::setValue
mixedvalue
Метод задаёт, или изменяет, значение свойства.
Начиная с PHP 8.3.0 вызов метода с единственным аргументом устарел,
вместо него вызывают метод
ReflectionClass::setStaticPropertyValue.
&reftitle.parameters;
object
Чтобы метод изменил нестатическое свойство, в метод передают объект.
Если свойство статическое, нужно передать значение &null;.
value
Новое значение.
&reftitle.returnvalues;
&return.void;
&reftitle.changelog;
&Version;
&Description;
8.3.0
Вызов метода с единственным аргументом устарел,
вместо него для изменения статического свойства вызывают
метод ReflectionClass::setStaticPropertyValue.
8.1.0
Доступ к закрытым и защищённым свойствам сразу получают
методом ReflectionProperty::getValue.
Раньше свойства требовалось сделать доступными
методом ReflectionProperty::setAccessible,
иначе метод выбрасывал исключение ReflectionException.
&reftitle.examples;
Пример использования метода ReflectionProperty::setValue
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); // Требуется только до PHP 8.1.0
$reflectionProperty->setValue($foo, 'foobar');
var_dump($reflectionProperty->getValue($foo));
?>
]]>
&example.outputs;
&reftitle.seealso;
ReflectionProperty::getValue
ReflectionProperty::setAccessible
ReflectionClass::setStaticPropertyValue