PHP WeakReference 类
引言
借助弱引用,可以保留对对象进行参考,而不会阻止对象被销毁。可以通过弱引用实现缓存等结构。
弱引用类似于普通引用,不同之处在于它不会阻止垃圾收集器收集对象。如果找不到对该对象的强引用,它将立即从内存中删除。这样,可以实现缓存的大部分优点,而不会出现内存问题。
WeakReference 类在 PHP 7.4 中引入。在此版本之前,可通过 weakref 扩展实现相同的效果。WeakReference 类具备以下结构
语法
WeakReference {
/* Methods */
public __construct ( void )
public static create ( object $referent ) : WeakReference
public get ( void ) : ?object
}方法
public WeakReference::__construct ( void ) — 拒绝实例化 WeakReference 类。它可以通过工厂方法 WeakReference::create() 实例化。
public static WeakReference::create ( object $referent ) : WeakReference — 创建一个新的 WeakReference。
public WeakReference::get ( void ) : ?object — 获取弱引用对象。如果对象已销毁,则返回 NULL。
生成器示例
以下示例提供 myclass 对象。对该对象的 WeakReference 显示一个引用。然后取消设置对象。现在 WeakReference 会返回 NULL
示例
<?php
class myclass{
function Hello(){
echo "Hello";
}
}
$obj = new myclass();
$ref = WeakReference::create($obj);
var_dump($ref->get());
unset($obj);
var_dump($ref->get());
?>输出
上述程序显示以下输出
object(myclass)#1 (0) {
}
NULL
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP