Weakref::release

(PECL weakref >= 0.1.0)
Releases a previously acquired reference
public bool Weakref::release ( void )

Releases a previously acquired reference, potentially turning a strong reference back into a weak reference.

The Weakref instance maintains an internal acquired counter to track outstanding strong references. If the call to Weakref::release() is successful, this counter will be decremented by one. Once this counter reaches zero, the strong reference is turned back into a weak reference.

Returns:

Returns TRUE if the reference was previously acquired and thus could be released, FALSE otherwise.

Examples:
Weakref::release() example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}
 
$o1 new MyClass;
 
$r1 new Weakref($o1);
 
$r1->acquire();
 
echo "Unsetting o1...\n";
unset($o1);
 
$o2 $r1->get();
 
$r1->release();
 
echo "Unsetting o2...\n";
unset($o2);
?>

The above example will output:

Unsetting o1...
Unsetting o2...
Destroying object!
See also:

Weakref::acquire() -

doc_php
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.