PHP 7.4中的弱引用(Weak References )
#介紹
弱引用允許程式設計師保留對物件的引用,而該物件不會阻止物件被銷毀;它們對於實現類似快取的結構非常有用。它們目前在PHP中得到了擴展支援。
WeakRef目前的實作都是透過重載物件處理程序來實現的,最受歡迎的實作(pecl-weakref)改變了分配給只讀記憶體的堆疊,PHP 7.3將使其不可用。以其他方式更改物件處理程序的其他實作也存在故障的風險,並且依賴未定義的行為和拋棄一致性。
其他實作也是可能的,krakjoe/uref是一個使用低層特性(mprotect、0xCC、訊號)來實現weakrefs的實現,但代價是可移植性、產生分段錯誤、保護記憶體和隱式信號處理程序限制。
原則上,弱引用物件並不複雜,只需要(ab)使用Zend或下面的層,因為我們不直接支援它。
建議
我們以最簡單的方式直接支援弱引用。
API
該API:
final class WeakReference { public static function create(object $object) : WeakReference; public function get() : ?object; }
向後不相容的變更
沒有。
#翻譯:https://wiki.php.net/rfc/weakrefs
以上是PHP 7.4中的弱引用(Weak References )的詳細內容。更多資訊請關注PHP中文網其他相關文章!