(PHP 8 >= 8.4.0)
ReflectionProperty::setRawValue — Sets the value of a property, bypassing a set hook if defined
Sets the value of a property, bypassing a set hook if defined.
objectThe object on which to set the property value.
valueThe value to write. It must still be valid according to the property's type.
Nessun valore viene restituito.
If the property is virtual, an Error will be thrown, as there is no raw value to set.
Example #1 ReflectionProperty::setRawValue() example
<?php
class Example
{
public int $age {
set {
if ($value <= 0) {
throw new \InvalidArgumentException();
}
$this->age = $value;
}
}
}
$example = new Example();
$rClass = new \ReflectionClass(Example::class);
$rProp = $rClass->getProperty('age');
// These would go through the set hook, and throw an exception.
try {
$example->age = -2;
} catch (InvalidArgumentException) {
echo "InvalidArgumentException for setting property to -2\n";
}
try {
$rProp->setValue($example, -2);
} catch (InvalidArgumentException) {
echo "InvalidArgumentException for using ReflectionProperty::setValue() with -2\n";
}
// But this would set the $age to -2 without error.
$rProp->setRawValue($example, -2);
echo $example->age;
?>Il precedente esempio visualizzerà:
InvalidArgumentException for setting property to -2 InvalidArgumentException for using ReflectionProperty::setValue() with -2 -2