PHP Conference Nagoya 2025

ReflectionClass::resetAsLazyGhost

(PHP 8 >= 8.4.0)

ReflectionClass::resetAsLazyGhostRedefine um objeto e o marca como lento

Descrição

public ReflectionClass::resetAsLazyGhost(object $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.

Parâmetros

object
Um objeto não-lento ou um objeto lento inicializado.
initializer
Uma função de retorno do inicializador com a mesma assinatura e finalidade de ReflectionClass::newLazyGhost().
options

options pode ser uma combinação das seguintes opções:

ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE
Por padrão, a serialização de um objeto lento aciona sua inicialização. Definir esta opção impede a inicialização, permitindo que objetos lentos sejam serializados sem serem inicializados.
ReflectionClass::SKIP_DESTRUCTOR
Por padrão, o destrutor de objetos é chamado (se houver) antes de torná-lo lento. Isso fornece segurança em relação a qualquer estado preexistente no objeto. Esta opção desativa esse comportamento, permitindo que os objetos sejam redefinidos como lentos sem chamar o destrutor.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

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.

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top