首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WeakRef (class)

Introduction

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

Class synopsis

WeakRef {

/* Methods */

public Weakref::__construct ( object $object )

代码语言:javascript
复制
public bool Weakref::acquire ( void )
代码语言:javascript
复制
public object Weakref::get ( void )
代码语言:javascript
复制
public bool Weakref::release ( void )
代码语言:javascript
复制
public bool Weakref::valid ( void )

}

Examples

Example #1 WeakRef usage example

代码语言:javascript
复制
<?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:

代码语言:javascript
复制
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

Weakref::acquire →

代码语言:txt
复制
 © 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

扫码关注腾讯云开发者

领取腾讯云代金券