介紹
弱參照允許程式設計師保留對物件的參照,而該物件不會阻止物件被銷毀;它們對於實現類似快取的結構非常有用。它們目前在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 )的詳細內容,更多請關注TW511.COM其它相關文章!