PHP 7.4中的弱參照(Weak References )

2020-07-16 10:06:12
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 )的詳細內容,更多請關注TW511.COM其它相關文章!