(PHP 7 >= 7.4.0, PHP 8)
Referências fracas permitem que o programador mantenha uma referência a um objeto que não impede
que o objeto seja destruído. Eles são úteis para implementar estruturas como cache.
Se o objeto original tiver sido destruído, null
será retornado
ao chamar o método WeakReference::get().
O objeto original será destruído quando o
refcount dele cair para zero;
criar referências fracas não aumenta o refcount
do objeto que está sendo referenciado.
WeakReferences não podem ser serializadas.
Exemplo #1 Uso básico de referência fraca
<?php
$obj = new stdClass();
$weakref = WeakReference::create($obj);
var_dump($weakref->get());
unset($obj);
var_dump($weakref->get());
?>
O exemplo acima produzirá algo semelhante a:
object(stdClass)#1 (0) { } NULL
Versão | Descrição |
---|---|
8.4.0 |
O resultado de WeakReference::__debugInfo() agora inclui
o objeto referenciado ou NULL se a referência não for mais
válida.
|