(PHP 8 >= 8.4.0)
ReflectionClass::resetAsLazyGhost — Redefine um objeto e o marca como lento
$object, callable $initializer, int $options = 0): void
Redefine um objeto existente informado em object e marca-o como lento.
O destrutor do objeto é chamado (se existir), a menos que
a opção ReflectionClass::SKIP_DESTRUCTOR seja especificada. No
caso especial em que o objeto é um proxy inicializado, a instância real
é desanexada do proxy. Se a instância real não for mais referenciada
em outro lugar, seu destrutor será chamado independentemente da
opção SKIP_DESTRUCTOR.
As propriedades dinâmicas são removidas e o valor das propriedades declaradas na
classe é descartado como se unset() tivesse sido chamada, e
marcado como lento. Isso implica que se o objeto for uma instância de uma subclasse
com propriedades adicionais, essas propriedades não serão modificadas e não serão
tornadas lentas.
Propriedades
somente leitura também não são modificadas e não se tornam lentas se forem
marcadas com final ou se a própria classe for final.
Se nenhuma propriedade foi marcada como lenta, o objeto não será marcado como lento. Consulte também Ciclo de Vida de Objetos Lentos.
Caso contrário, após chamar este método, o comportamento do objeto será o mesmo de um objeto criado por ReflectionClass::newLazyGhost() (exceto para propriedades de subclasse e somente leitura, conforme descrito acima).
O objeto não é substituído por outros, e sua identidade se mantém
inalterada. Funcionalidades como spl_object_id(),
spl_object_hash(),
SplObjectStorage, WeakMap,
WeakReference ou
o operador identidade
(===) não são afetadas.
objectinitializeroptions
options pode ser uma combinação das seguintes
opções:
ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE
ReflectionClass::SKIP_DESTRUCTOR
Nenhum valor é retornado.
Uma exceção ReflectionException é lançada se o objeto for lento e não inicializado.
Um Error é lançado se o objeto estiver sendo inicializado, ou se as
propriedades do objeto estão sendo iteradas com
foreach.