(PHP 8 >= 8.4.0)
ReflectionClass::markLazyObjectAsInitialized — Marque un objet paresseux comme initialisé sans appeler l'initialiseur ou la fabrique
   Marque un objet paresseux comme initialisé sans appeler l'initialiseur ou
   la fabrique. Cela n'a aucun effet si object n'est pas
   paresseux ou est déjà initialisé.
  
   L'effect de l'appel de cette méthode est le même que décrit pour les objets fantômes
   (peu importe la stratégie de paresse de object) dans
   séquence
   d'initialisation, sauf que l'initialiseur n'est pas appelé.
   Après cela, l'objet est indiscernable d'un objet qui n'était jamais paresseux et
   a été créé avec
   ReflectionClass::newInstanceWithoutConstructor(),
   excepté pour la valeur des propriétés qui ont déjà été initialisées avec
   ReflectionProperty::setRawValueWithoutLazyInitialization()
   ou ReflectionProperty::skipLazyInitialization().
  
object
   Renvoie object.
  
Exemple #1 Marquer un objet paresseux non initialisé comme initialisé
<?php
class Example
{
    public string $prop1;
    public string $prop2;
    public string $prop3 = 'default value';
}
$reflector = new ReflectionClass(Example::class);
$object = $reflector->newLazyGhost(function ($object) {
    echo "Initializer called\n";
    $object->prop1 = 'initialized';
});
$reflector->getProperty('prop1')
          ->setRawValueWithoutLazyInitialization($object, 'prop1 value');
var_dump($object);
$reflector->markLazyObjectAsInitialized($object);
var_dump($object);
?>L'exemple ci-dessus va afficher :
lazy ghost object(Example)#3 (1) {
  ["prop1"]=>
  string(11) "prop1 value"
  ["prop2"]=>
  uninitialized(string)
  ["prop3"]=>
  uninitialized(string)
}
object(Example)#3 (2) {
  ["prop1"]=>
  string(11) "prop1 value"
  ["prop2"]=>
  uninitialized(string)
  ["prop3"]=>
  string(13) "default value"
}
Exemple #2 Marquer un objet paresseux initialisé comme initialisé
<?php
class Example
{
    public string $prop1;
    public string $prop2;
    public string $prop3 = 'default value';
}
$reflector = new ReflectionClass(Example::class);
$object = $reflector->newLazyGhost(function ($object) {
    echo "Initializer called\n";
    $object->prop1 = 'initialized';
});
$reflector->getProperty('prop1')
          ->setRawValueWithoutLazyInitialization($object, 'prop1 value');
var_dump($object->prop3);
var_dump($object);
$reflector->markLazyObjectAsInitialized($object);
var_dump($object);
?>L'exemple ci-dessus va afficher :
Initializer called
string(13) "default value"
object(Example)#3 (2) {
  ["prop1"]=>
  string(11) "initialized"
  ["prop2"]=>
  uninitialized(string)
  ["prop3"]=>
  string(13) "default value"
}
object(Example)#3 (2) {
  ["prop1"]=>
  string(11) "initialized"
  ["prop2"]=>
  uninitialized(string)
  ["prop3"]=>
  string(13) "default value"
}
