©
This document uses PHP Chinese website manual Release
(PECL weakref >= 0.1.0)
Weakref::acquire — Acquires a strong reference on that object
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.
此函数没有参数。
Returns TRUE
if the reference was valid and could be turned into a strong
reference, FALSE
otherwise.
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 );
?>
以上例程会输出:
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 ();
?>
以上例程会输出:
Acquiring... Unsetting... Acquiring... Acquiring... Releasing... Releasing... Releasing... Destroying object!