(PECL weakref >= 0.1.0)
Examples:
WeakRef usage example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?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::valid
  • References/PHP/Function/PHP's Behavior/Weak/Weakref

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

2025-01-10 15:47:30
Weakref::release
  • References/PHP/Function/PHP's Behavior/Weak/Weakref

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

2025-01-10 15:47:30
Weakref::acquire
  • References/PHP/Function/PHP's Behavior/Weak/Weakref

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

2025-01-10 15:47:30
Weakref::__construct
  • References/PHP/Function/PHP's Behavior/Weak/Weakref

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

2025-01-10 15:47:30
Weakref::get
  • References/PHP/Function/PHP's Behavior/Weak/Weakref

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

2025-01-10 15:47:30