WeakRef
PHP Manual

Weakref::acquire

(PECL weakref >= 0.1.0)

Weakref::acquireAdquiere una referencia fuerte de un objeto

Descripción

public bool Weakref::acquire ( void )

Adquiere una referencia fuerte de un objeto, convirtiendo virtualmente la referencia débil en una fuerte.

Parámetros

Esta función no tiene parámetros.

Valores devueltos

Devuelve TRUE si la referencia era válida y pudo ser convertida a una referencia fuerte, de lo contrario FALSE.

Ejemplos

Ejemplo #1 Ejemplo de Weakref::acquire()

<?php
class MiClase {
    public function 
__destruct() {
        echo 
"¡Destruyendo el objeto!\n";
    }
}

$o1 = new MiClase;

$r1 = new Weakref($o1);

$r1->acquire();

echo 
"Destruyendo o1...\n";
unset(
$o1);

$o2 $r1->get();

$r1->release();

echo 
"Destruyendo o2...\n";
unset(
$o2);
?>

El resultado del ejemplo sería:

Destruyendo  o1...
Destruyendo  o2...
¡Destruyendo el objeto!

Ejemplo #2 Ejemplo de acquire/release anidados

<?php
class MiClase {
    public function 
__destruct() {
        echo 
"¡Destruyendo el objeto!\n";
    }
}

$o1 = new MiClase;

$r1 = new Weakref($o1);

echo 
"Adquiriendo...\n";
$r1->acquire();

echo 
"  Destruyendo...\n";
unset(
$o1);

echo 
"  Adquiriendo...\n";
$r1->acquire();

echo 
"    Adquiriendo...\n";
$r1->acquire();

echo 
"    Liberando...\n";
$r1->release();

echo 
"  Liberando...\n";
$r1->release();

echo 
"Liberando...\n";
$r1->release();

?>

El resultado del ejemplo sería:

Adquiriendo...
  Destruyendo...
  Adquiriendo...
    Adquiriendo...
    Liberando...
  Liberando...
Liberando...
¡Destruyendo el objeto!

Ver también


WeakRef
PHP Manual