(PHP 8 >= 8.4.0)
ReflectionClass::initializeLazyObject — Force l'initialisation d'un objet paresseux
Force l'initialisation de l'object spécifié. Cette
méthode n'a aucun effet si l'objet n'est pas paresseux ou a déjà été
initialisé. Sinon, l'initialisation se déroule comme décrit dans la
Séquence
d'initialisation.
Note:
Dans la plupart des cas, appeler cette méthode est inutile, car les objets paresseux s'initialisent automatiquement lorsqu'ils sont observés ou modifiés.
objectL'objet à initialiser.
Si object est un proxy paresseux, renvoie son instance
réelle. Sinon, renvoie object lui-même.
Exemple #1 Utilisation basique
<?php
class Example
{
public function __construct(public int $prop) {
}
}
$reflector = new ReflectionClass(Example::class);
$object = $reflector->newLazyGhost(function ($object) {
echo "Initializer called\n";
$object->__construct(1);
});
var_dump($object);
$reflector->initializeLazyObject($object);
var_dump($object);
?>L'exemple ci-dessus va afficher :
lazy ghost object(Example)#3 (0) {
["prop"]=>
uninitialized(int)
}
Initializer called
object(Example)#3 (1) {
["prop"]=>
int(1)
}