Weakref::acquire
(PECL weakref >= 0.1.0)
Weakref::acquire — Adquiere 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!