(PHP 8 >= 8.4.0)
ReflectionClass::resetAsLazyGhost — Réinitialise un objet et le marque comme paresseux
$object
, callable $initializer
, int $options
= 0): void
Réinitialise un objet
existant et le marque comme paresseux.
Le destructeur de l'objet est appelé (s'il existe) sauf si le drapeau
ReflectionClass::SKIP_DESTRUCTOR
est spécifié. Dans le cas
particulier où l'objet est un proxy initialisé, l'instance réelle est détachée
du proxy. Si l'instance réelle n'est plus référencée ailleurs, son destructeur
est appelé indépendamment du
drapeau SKIP_DESTRUCTOR
.
Les propriétés dynamiques sont supprimées, et la valeur des propriétés
déclarées sur la classe est jetée comme si unset() était
appelée, et marquée comme paresseuse. Cela implique que si l'objet est une
instance d'une sous-classe avec des propriétés supplémentaires, ces propriétés
ne sont pas modifiées et ne sont pas marquées comme paresseuses.
Les propriétés
en lecture seule ne sont pas modifiées et ne sont pas marquées comme
paresseuses si elles sont final
ou si la classe elle-même
est final
.
Si aucune propriété n'est marquée comme paresseuse, l'objet n'est pas marqué comme paresseux. Voir aussi Cycle de vie des objets paresseux.
Sinon, après l'appel de cette méthode, le comportement de l'objet est le même qu'un objet créé par ReflectionClass::newLazyGhost() (sauf pour les propriétés de sous-classe et les propriétés en lecture seule, comme décrit ci-dessus).
L'objet n'est pas remplacé par un autre, et son identité reste inchangée. Les
fonctionnalités telles que spl_object_id(),
spl_object_hash(),
SplObjectStorage, WeakMap,
WeakReference, ou
l'opérateur d'identité
(===
) ne sont pas affectées.
object
initializer
options
options
peut être une combinaison des drapeaux
suivants :
ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE
ReflectionClass::SKIP_DESTRUCTOR
Aucune valeur n'est retournée.
Une ReflectionException si l'objet est paresseux et non initialisé.
Une Error si l'objet est en cours d'initialisation, ou si
les propriétés de l'objet sont itérées avec
foreach
.