文字

The WeakRef class

(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.

类摘要

WeakRef {
public Weakref::__construct ( object $object )
public bool Weakref::acquire ( void )
public object Weakref::get ( void )
public bool Weakref::release ( void )
public bool Weakref::valid ( void )
}

范例

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" ;
}
?>

以上例程会输出:

Object still exists!
object(MyClass)#1 (0) {
}
Destroying object!
Object is dead!

Table of Contents

  • Weakref::acquire — Acquires a strong reference on that object
  • Weakref::__construct — Constructs a new weak reference
  • Weakref::get — Returns the object pointed to by the weak reference
  • Weakref::release — Releases a previously acquired reference
  • Weakref::valid — Checks whether the object referenced still exists
上一篇: 下一篇: