(PECL weakref >= 0.1.0)
The WeakRef class provides a gateway to objects without preventing the garbage collector from freeing those objects. It also provides a way to turn a weak reference into a strong one.
Note:
The class WeakRef is not to be confused with the class WeakReference.
public Weakref::acquire ( ) : bool
public Weakref::get ( ) : object
public Weakref::release ( ) : bool
public Weakref::valid ( ) : bool}
Example #1 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!
© 1997–2020 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/class.weakref.php