(PECL weakref >= 0.1.0)
La classe WeakRef fournit une passerelle vers les objets sans prévenir le gestionnaire de collection de la libération de ces derniers. Elle fournit également une façon de passer d'une référence faible à une référence forte.
Note:
La classe WeakRef ne doit pas être confondu avec la classe WeakReference.
Exemple #1 Exemple d'utilisation de WeakRef
<?php
class MyClass {
public function __destruct() {
echo "Destruction de l'objet !\n";
}
}
$o1 = new MyClass;
$r1 = new WeakRef($o1);
if ($r1->valid()) {
echo "L'objet existe toujours !\n";
var_dump($r1->get());
} else {
echo "L'objet est mort !\n";
}
unset($o1);
if ($r1->valid()) {
echo "L'objet existe toujours !\n";
var_dump($r1->get());
} else {
echo "L'objet est mort !\n";
}
?>
L'exemple ci-dessus va afficher :
L'objet existe toujours ! object(MyClass)#1 (0) { } Destruction de l'objet ! L'objet est mort !