Weakref::acquire
(PECL weakref >= 0.1.0)
Weakref::acquire — Acquires a strong reference on that object
Description
public bool Weakref::acquire ( void )
Acquires a strong reference on that object, virtually turning the weak reference into a strong one.
The Weakref instance maintains an internal acquired counter to track outstanding strong references. If the call to Weakref::acquire() is successful, this counter will be incremented by one.
Parameters
This function has no parameters.
Return Values
Returns TRUE
if the reference was valid and could be turned into a strong reference, FALSE
otherwise.
Examples
Example #1 Weakref::acquire() example
<?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!
Example #2 Nested acquire/release example
<?php
class?MyClass?{
????public?function?__destruct()?{
????????echo?"Destroying?object!\n";
????}
}
$o1?=?new?MyClass;
$r1?=?new?Weakref($o1);
echo?"Acquiring...\n";
$r1->acquire();
echo?"??Unsetting...\n";
unset($o1);
echo?"??Acquiring...\n";
$r1->acquire();
echo?"????Acquiring...\n";
$r1->acquire();
echo?"????Releasing...\n";
$r1->release();
echo?"??Releasing...\n";
$r1->release();
echo?"Releasing...\n";
$r1->release();
?>
The above example will output:
Acquiring...
Unsetting...
Acquiring...
Acquiring...
Releasing...
Releasing...
Releasing...
Destroying object!
See Also
- Weakref::release() - Releases a previously acquired reference
← WeakRef
Weakref::__construct →
? 1997–2017 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com