array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'it', ), 'this' => array ( 0 => 'reflectionproperty.setrawvalue.php', 1 => 'ReflectionProperty::setRawValue', 2 => 'Sets the value of a property, bypassing a set hook if defined', ), 'up' => array ( 0 => 'class.reflectionproperty.php', 1 => 'ReflectionProperty', ), 'prev' => array ( 0 => 'reflectionproperty.setaccessible.php', 1 => 'ReflectionProperty::setAccessible', ), 'next' => array ( 0 => 'reflectionproperty.setrawvaluewithoutlazyinitialization.php', 1 => 'ReflectionProperty::setRawValueWithoutLazyInitialization', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/reflection/reflectionproperty/setrawvalue.xml', ), 'history' => array ( ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); contributors($setup); ?>
(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.
object
value
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