ReflectionProperty::setRawValue

(PHP 8 >= 8.4.0)

ReflectionProperty::setRawValueSets the value of a property, bypassing a set hook if defined

Beschreibung

public ReflectionProperty::setRawValue(object $object, mixed $value): void

Sets the value of a property, bypassing a set hook if defined.

Parameter-Liste

object
The object on which to set the property value.
value
The value to write. It must still be valid according to the property's type.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

If the property is virtual, an Error will be thrown, as there is no raw value to set.

Beispiele

Beispiel #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;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

InvalidArgumentException for setting property to -2
InvalidArgumentException for using ReflectionProperty::setValue() with -2
-2
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top