La classe WeakRef

(PECL weakref >= 0.1.0)

Introduction

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.

Synopsis de la classe

WeakRef {
/* Méthodes */
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
}

Exemples

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 !

Sommaire