ReflectionProperty::setRawValue

(PHP 8 >= 8.4.0)

ReflectionProperty::setRawValueDéfinit la valeur d'une propriété, en contournant un hook de définition s'il est défini

Description

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

Définit la valeur d'une propriété, en contournant un set hook s'il est défini.

Liste de paramètres

object
L'objet sur lequel définir la valeur de la propriété.
value
La valeur à écrire. Elle doit toujours être valide selon le type de la propriété.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Si la propriété est virtuelle, une Error sera lancée, car il n'y a pas de valeur brute à définir.

Exemples

Exemple #1 Exemple de ReflectionProperty::setRawValue()

<?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');

// Ceci passerait par le hook set, et lancerait une exception.
$example->age = -2;
try {
$example->age = -2;
} catch (
InvalidArgumentException) {
print
"InvalidArgumentException for setting property to -2\n";
}
try {
$rProp->setValue($example, -2);
} catch (
InvalidArgumentException) {
print
"InvalidArgumentException for using ReflectionProperty::setValue() with -2\n";
}

// Mais cela définirait $age à -2 sans erreur.
$rProp->setRawValue($example, -2);
echo
$example->age;
?>

L'exemple ci-dessus va afficher :

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