色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

PHP 弱引用的相關(guān)總結(jié)

瀏覽:84日期:2022-09-07 14:13:01

之前的文章中,我們已經(jīng)學(xué)習(xí)過引用和引用傳值相關(guān)的知識(shí)。我們知道,PHP 中沒有純引用(指針),不管是對象,還是用引用符號(hào) & 賦值的變量,都是對一個(gè)符號(hào)表的引用。而今天,我們要學(xué)習(xí)的是另一種引用形式:弱引用。

什么是弱引用

弱引用允許程序員保留對對象的引用,而該對象不會(huì)阻止對象被銷毀;它們對于實(shí)現(xiàn)類似緩存的結(jié)構(gòu)非常有用。

這是比較官方的解釋。從這個(gè)說明中,我們可以看出,弱引用也是一種引用形式,但是,如果我們銷毀了原來的對象,那么弱引用對象也會(huì)被銷毀,就像普通的值對象賦值一樣。如果沒有看過之前的文章,或者對 PHP 中的引用不太熟悉的朋友可能需要再了解一下 PHP 中引用相關(guān)的知識(shí)。下面,我們直接通過示例來看一下。

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

第一個(gè)對象 $obj 我們進(jìn)行直接的賦值引用,也就是 PHP 默認(rèn)的對象賦值。這時(shí)候,$weakref 保存的是對象符號(hào)表的引用。當(dāng)我們 unset() 掉 $obj 時(shí),$weakref 依然能夠正常使用。也就是說,$weakref 對 $obj 原始對象的內(nèi)存引用依然保持著。不管我們怎么 unset() 原始的 $obj ,都只是切斷了 $obj 的引用符號(hào)表,對真正的對象沒有影響,垃圾回收器也不會(huì)徹底的回收最最原始的 $obj 對象內(nèi)容。

第二個(gè)對象我們使用的是 WeakReference 的 create() 方法來創(chuàng)建的弱引用,當(dāng)我們銷毀 $obj1 后,$weakref 也會(huì)變成 NULL 。這就是弱引用的作用!

它可以讓垃圾回收器正常的回收,它可以避免循環(huán)引用帶來的內(nèi)存泄漏問題,它能讓引用表現(xiàn)為類似于 C 中的指針操作一樣。

最后一段代碼是我們通過 WeakReference::create() 中直接使用 new 來創(chuàng)建對象。這種形式是不行的,會(huì)一直返回 NULL 。因?yàn)槿跻檬峭ㄟ^變量來創(chuàng)建的,它指向的是原始對象的符號(hào)表,而變量和對象之間的符號(hào)表連接才是弱引用關(guān)心的內(nèi)容,它會(huì)根據(jù)符號(hào)表的狀態(tài)來判斷當(dāng)前的狀態(tài)。如果原始對象變量切斷了與符號(hào)表的連接,那么弱引用的變量也會(huì)同步切斷,這樣,垃圾回收器就能正常的清理這個(gè)已經(jīng)沒有任何引用計(jì)數(shù)的對象了。

注意

這里需要注意的是,上面的測試代碼必須在 PHP7.4 及以上版本才有用,WeakReference 類是 PHP7.4 新增加的內(nèi)容。之前的版本需要安裝 WeakRef 這個(gè)擴(kuò)展才能實(shí)現(xiàn)弱引用的能力,具體的內(nèi)容可以查閱下方鏈接中的相關(guān)的文檔。

測試代碼:

https://github.com/zhangyue0503...

以上就是PHP 弱引用的相關(guān)總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于PHP 弱引用的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 日韩毛片欧美一级国产毛片 | 中文字幕亚洲高清综合 | 国产高清免费在线 | 亚洲国产二区三区久久 | 久久久999国产精品 久久久99精品免费观看 | 欧美三级久久 | 欧美孕交视频 | 永久免费毛片在线播放 | 一区二区三区在线 | 黄色美女网站免费看 | 国产片在线观看狂喷潮bt天堂 | 亚洲国产成人在人网站天堂 | 亚洲六月丁香六月婷婷蜜芽 | 日日摸日日碰夜夜97 | 久久久久国产 | 国产成人精品久久一区二区小说 | 最新日韩欧美不卡一二三区 | 中文字幕人成不卡一区 | 国产手机精品a | 国产精品一级视频 | 欧美大片在线播放 | 黄色不卡视频 | 亚洲精品不卡视频 | 精品午夜一区二区三区在线观看 | 久久成人在线 | 中文毛片 | 国产精品毛片天天看片 | 中文字幕在线乱码不卡区区 | 久久香蕉精品视频 | 亚洲欧美字幕 | 亚洲成a人一区二区三区 | 一级成人毛片免费观看欧美 | 国产亚洲精品yxsp | 亚洲网站www | 免费一级特黄欧美大片勹久久网 | 亚洲更新 | 免费乱人伦 | 中文字幕曰韩一区二区不卡 | 欧美α一级毛片 | 九九干 | 理论片我不卡在线观看 |