首页
学习
活动
专区
工具
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.

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com