(PECL weakref >= 0.1.0)
Examples:
WeakRef usage example
<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new WeakRef($o1);

if ($r1->valid()) {
    echo "Object still exists!\n";
    var_dump($r1->get());
} else {
    echo "Object is dead!\n";
}

unset($o1);

if ($r1->valid()) {
    echo "Object still exists!\n";
    var_dump($r1->get());
} else {
    echo "Object is dead!\n";
}
?>

The above example will output:

Object still exists!
object(MyClass)#1 (0) {
}
Destroying object!
Object is dead!
Weakref::release

(PECL weakref >= 0.1.0) Releases a previously acquired reference

2016-02-24 15:54:10
Weakref::valid

(PECL weakref >= 0.1.0) Checks whether the object referenced still exists

2016-02-24 15:54:11
Weakref::acquire

(PECL weakref >= 0.1.0) Acquires a strong reference on that object

2016-02-24 15:54:10
Weakref::__construct

(PECL weakref >= 0.1.0) Constructs a new weak reference

2016-02-24 15:54:10
Weakref::get

(PECL weakref >= 0.1.0) Returns the object pointed to by the weak reference

2016-02-24 15:54:10