# ReflectionClass::markLazyObjectAsInitialized

(PHP 8 >= 8.4.0)

ReflectionClass::markLazyObjectAsInitialized — Marque un objet paresseux comme initialisé sans appeler l'initialiseur ou la fabrique

### Description

public ReflectionClass::markLazyObjectAsInitialized(object `$object`): object

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().

### Liste de paramètres

`object`
  L'objet à marquer comme initialisé.

### Valeurs de retour

Renvoie `object`.

### Exemples

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"
    }

### Voir aussi

- Objet paresseux
- ReflectionClass::newLazyGhost() - Créer une nouvelle instance fantôme paresseuse
- ReflectionClass::initializeLazyObject() - Force l'initialisation d'un objet paresseux
- ReflectionClass::isUninitializedLazyObject() - Vérifie si un objet est paresseux et non initialisé