(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.
object
initializer
options
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
.