La clase WeakRef

(PECL weakref >= 0.1.0)

Introducción

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.

Sinopsis de la Clase

WeakRef {
/* Métodos */
public Weakref::__construct ( object $object )
public Weakref::acquire ( void ) : bool
public Weakref::get ( void ) : object
public Weakref::release ( void ) : bool
public Weakref::valid ( void ) : bool
}

Ejemplos

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!

Tabla de contenidos