(PHP 8 >= 8.4.0)
ReflectionClass::resetAsLazyGhost — Reinicia un objeto y lo marca como perezoso
$object
, callable $initializer
, int $options
= 0): void
Reinicia un objeto
existente y lo marca como perezoso.
El destructor del objeto es llamado (si existe) a menos que se especifique el flag
ReflectionClass::SKIP_DESTRUCTOR
. En el caso particular donde el objeto es un proxy inicializado, la instancia real es desvinculada del proxy. Si la instancia real ya no es referenciada en otro lugar, su destructor es llamado independientemente del
flag SKIP_DESTRUCTOR
.
Las propiedades dinámicas son eliminadas, y el valor de las propiedades
declaradas en la clase es descartado como si unset() fuera
llamada, y marcadas como perezosas. Esto implica que si el objeto es una
instancia de una subclase con propiedades adicionales, estas propiedades
no son modificadas y no son marcadas como perezosas.
Las propiedades
readonly no son modificadas y no son marcadas como perezosas si son final
o si la clase misma
es final
.
Si ninguna propiedad es marcada como perezosa, el objeto no es marcado como perezoso. Ver también Ciclo de vida de los objetos perezosos.
De lo contrario, después de la llamada a este método, el comportamiento del objeto es el mismo que un objeto creado por ReflectionClass::newLazyGhost() (excepto para las propiedades de subclase y las propiedades readonly, como se describe anteriormente).
El objeto no es reemplazado por otro, y su identidad permanece inalterada. Las funcionalidades como spl_object_id(),
spl_object_hash(),
SplObjectStorage, WeakMap,
WeakReference, o
el operador de identidad
(===
) no son afectadas.
object
initializer
options
options
puede ser una combinación de los siguientes flags:
ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE
ReflectionClass::SKIP_DESTRUCTOR
No devuelve ningún valor.
Una ReflectionException si el objeto es perezoso y no está inicializado.
Una Error si el objeto está en proceso de inicialización, o si
las propiedades del objeto son iteradas con
foreach
.