Redefine um objeto e o marca como lento

# ReflectionClass::resetAsLazyGhost

(PHP 8 >= 8.4.0)

ReflectionClass::resetAsLazyGhost — Redefine um objeto e o marca como lento

### Descrição

public function 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

- ReflectionClass::newLazyGhost() - Cria uma nova instância de fantasma lento
- ReflectionClass::resetAsLazyProxy() - Redefine um objeto e o marca como lento

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open