介紹
創(chuàng)新互聯(lián)建站主營(yíng)洪江網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件開(kāi)發(fā)公司,洪江h(huán)5小程序設(shè)計(jì)搭建,洪江網(wǎng)站營(yíng)銷(xiāo)推廣歡迎洪江等地區(qū)企業(yè)咨詢(xún)
弱引用允許程序員保留對(duì)對(duì)象的引用,而該對(duì)象不會(huì)阻止對(duì)象被銷(xiāo)毀;它們對(duì)于實(shí)現(xiàn)類(lèi)似緩存的結(jié)構(gòu)非常有用。它們目前在PHP中得到了擴(kuò)展支持。
WeakRef目前的實(shí)現(xiàn)都是通過(guò)重載對(duì)象處理程序來(lái)實(shí)現(xiàn)的,最流行的實(shí)現(xiàn)(pecl-weakref)改變了分配給只讀內(nèi)存的堆棧,PHP 7.3將使其不可用。以其他方式更改對(duì)象處理程序的其他實(shí)現(xiàn)也存在出現(xiàn)故障的風(fēng)險(xiǎn),并且依賴(lài)于未定義的行為和拋棄一致性。
其他實(shí)現(xiàn)也是可能的,krakjoe/uref是一個(gè)使用低層特性(mprotect、0xCC、信號(hào))來(lái)實(shí)現(xiàn)weakrefs的實(shí)現(xiàn),但代價(jià)是可移植性、生成分段錯(cuò)誤、保護(hù)內(nèi)存和隱式信號(hào)處理程序限制。
原則上,弱引用對(duì)象并不復(fù)雜,只需要(ab)使用Zend或下面的層,因?yàn)槲覀儾恢苯又С炙?/p>
建議
我們以最簡(jiǎn)單的方式直接支持弱引用。
API
該API:
final class WeakReference { public static function create(object $object) : WeakReference; public function get() : ?object; }
向后不兼容的更改
以上就是PHP 7.4中的弱引用(Weak References )的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!