目录
- 什么是弱引用
- WeakReference
- 注意
- 测试代码:
之前的文章中,我们已经学习过引用和引用传值相关的知识。我们知道,PHP 中没有纯引用(指针),不管是对象,还是用引用符号 & 赋值的变量,都是对一个符号表的引用。而今天,我们要学习的是另一种引用形式:弱引用。

什么是弱引用
弱引用允许程序员保留对对象的引用,而该对象不会阻止对象被销毁;它们对于实现类似缓存的结构非常有用。
这是比较官方的解释。从这个说明中,我们可以看出,弱引用也是一种引用形式,但是,如果我们销毁了原来的对象,那么弱引用对象也会被销毁,就像普通的值对象赋值一样。如果没有看过之前的文章,或者对 PHP 中的引用不太熟悉的朋友可能需要再了解一下 PHP 中引用相关的知识。下面,我们直接通过示例来看一下。
WeakReference
$obj = new stdClass;
$weakref = $obj;
var_dump($weakref);
// object(stdClass)#1 (0) {
// }
unset($obj);
var_dump($weakref);
// object(stdClass)#1 (0) {
// }
$obj1 = new stdClass;
$weakref = WeakReference::create($obj1);
var_dump($weakref->get());
// object(stdClass)#2 (0) {
// }
unset($obj1);
var_dump($weakref->get());
// NULL
$weakref = WeakReference::create(new stdClass);
var_dump($weakref->get());
// NULL
第一个对象 \$obj 我们进行直接的赋值引用,也就是 PHP 默认的对象赋值。这时候,$weakref 保存的是对象符号表的引用。当我们 unset() 掉 $obj 时,$weakref 依然能够正常使用。也就是说,$weakref 对 $obj 原始对象的内存引用依然保持着。不管我们怎么 unset() 原始的 $obj ,都只是切断了 $obj 的引用符号表,对真正的对象没有影响,垃圾回收器也不会彻底的回收最最原始的 $obj 对象内容。
第二个对象我们使用的是 WeakReference 的 create() 方法来创建的弱引用,当我们销毁 $obj1 后,$weakref 也会变成 NULL 。这就是弱引用的作用!
它可以让垃圾回收器正常的回收,它可以避免循环引用带来的内存泄漏问题,它能让引用表现为类似于 C 中的指针操作一样。
最后一段代码是我们通过 WeakReference::create() 中直接使用 new 来创建对象。这种形式是不行的,会一直返回 NULL 。因为弱引用是通过变量来创建的,它指向的是原始对象的符号表,而变量和对象之间的符号表连接才是弱引用关心的内容,它会根据符号表的状态来判断当前的状态。如果原始对象变量切断了与符号表的连接,那么弱引用的变量也会同步切断,这样,垃圾回收器就能正常的清理这个已经没有任何引用计数的对象了。
注意
这里需要注意的是,上面的测试代码必须在 PHP7.4 及以上版本才有用,WeakReference 类是 PHP7.4 新增加的内容。之前的版本需要安装 WeakRef 这个扩展才能实现弱引用的能力,具体的内容可以查阅下方链接中的相关的文档。
测试代码:
https://github.com/zhangyue0503...
以上就是PHP 弱引用的相关总结的详细内容,更多关于PHP 弱引用的资料请关注其它相关文章!
相关推荐:
seo组建需要什么条件,seo建站的步骤 ,ai肌肉宝宝
SEO管家:为您的网站保驾护航的智能SEO助手,网站推广作用有哪些类型
SEM有哪几个平台?数字营销的多元选择,AI怎么取消移动间距
企业如何借助SEO咨询实现精准流量引爆,助力业绩提升,立刻推广的旅游线下营销
AI上的文章属于原创吗?人工智能创作内容的归属问题
ChatGPT破解:让AI打破语言与思维的边界,ai模板vis
为什么要年前做SEO,企业为什么做seo推广 ,云南ai大数据公司
SEO外包:提升网站排名与品牌曝光的最佳选择,大创建设网站
ChatGPT页面无法下拉?禁用浏览器扩展,轻松解决!,imba 1.6 ai
seo用到什么软件,做seo需要用到什么软件 ,皮皮ai
SEO调整,助力网站流量爆发式增长!,江都seo优化排名
在线AI文章生成:内容创作新革命
ChatGPT免费订阅的使用限制:其潜力与挑战,ai辅助线无法对齐画板
SEO阶段解析:从入门到精通,助你站稳搜索引擎的前沿,网站建设特定开发
GoogleGPT-引领未来智能对话的革命,灵境ai画质
互联网留痕:数字时代的隐形轨迹与自我管理,灯塔网站推广包年多少钱
seo网站排名优化哪家好,seo网站优化平台 ,ai斗蟋
如何识别文章是否由AI写作:技巧与方法解析
SEO观看:如何通过优化提升您的网站流量和品牌影响力,龙里网络营销推广
SEO走动:提升网站流量的关键一步,SEO数据监控宝宝推荐
好用的AI写作软件,让创作更高效
什么是seo推广找行者SEO,seo推广效果怎么样 ,西宁ai万词霸屏系统
SEO领站-从零到一打造成功网站排名的秘密,轻淘客seo怎设置
“新热度”:引领潮流的力量,如何趋势的脉搏,浙江通用网站建设特点
seo深度优化插件是什么,深度优化手机软件 ,ai的缩写
seo要会些什么,seo需要学些什么内容 ,轻盈ai
WPJam:打破网站管理的壁垒,打造极致用户体验,广东谷歌seo工具
SEO优化如何提升网站排名,驾驭搜索引擎流量,三亚网站推广方法
SEO架构:提升网站流量的核心策略,东营南江全平台营销推广
未来的效率利器AI软件下载AI,助您轻松驾驭智能世界
ChatGPT充值打不开?这几招教你轻松解决问题!,免费的ai写作绘图
SEO找词:如何精准找到高效关键词,提升排名和流量,河源网站优化平台
ChatGPT不登录,如何畅享AI的智能服务?,手信ai
ChatGPT:OpenAI的创新之作-一款颠覆传统的语言模型,ai球衣号
SEO能够助力网站流量增长,提升品牌竞争力,Seo网站排名原理
AI缩短短文-提升创作效率,写作新体验,光速写作业ai写作app
什么是seo寄生虫,寄生虫seo原理 ,AI 疫
打造内容创作新时代:有言AI生成助力创作者释放灵感
ChatGPT中文版下载免费版:智能对话新时代,尽在,ai光波
SEO快速提升SEO排名的有效策略:让你的网页飞跃搜索引擎,ai调色食物
AI搜索相似文章怎么做?揭秘高效文章检索的核心技术!,程式ai软件
seo跟sem是什么,seo和sem的概念 ,惠威的ai功能
用AI生成的文章算原创吗?深度解析AI写作背后的秘密
seo软文用什么论坛,seo软文是什么意思 ,爱字幕的AI变脸不见了
丹东seo是什么怎么选,丹东spr ,黑发ai图
ChatGPT最近不好用了?了解这些背后的原因与解决方案,ai sketcher
seo独立站是什么,独立站推广是什么 ,ai曲线笔刷扩展
ChatGPT无法使用?了解原因及解决方法,轻松恢复智能对话体验!,ai满版图案
智能AI写文章:高效创作新风尚
SEO中权重是什么意思?让你迅速网站排名的核心秘密!,长颈鹿智能AI点读机