(PECL weakref >= 0.1.0)
La clase WeakRef proporciona una vía para objetos sin evitar que el recolector de basura libere tales objetos. También proporciona una manera de convertir una referencia débil en una fuerte.
Nota:
La clase WeakRef no debe confundirse con la clase WeakReference.
Ejemplo #1 Ejemplo de uso de WeakRef
<?php
class MiClase {
public function __destruct() {
echo "¡Destruyendo el objeto!\n";
}
}
$o1 = new MiClase;
$r1 = new Weakref($o1);
if ($r1->valid()) {
echo "¡El objeto aún existe!\n";
var_dump($r1->get());
} else {
echo "¡El objeto está muerto!\n";
}
unset($o1);
if ($r1->valid()) {
echo "¡El objeto aún existe!\n";
var_dump($r1->get());
} else {
echo "¡El objeto está muerto!\n";
}
?>
El resultado del ejemplo sería:
¡El objeto aún existe! object(MiClase)#1 (0) { } ¡Destruyendo el objeto! ¡El objeto está muerto!