PHP 7.4 の弱い参照

藏色散人
藏色散人オリジナル
2019-11-30 14:28:523423ブラウズ

PHP 7.4 の弱い参照

はじめに

弱い参照を使用すると、プログラマはオブジェクトへの参照を保持できます。このオブジェクトはオブジェクトの参照を妨げません。破壊されることがないため、キャッシュのような構造を実装するのに役立ちます。現在、PHP では拡張サポートが提供されています。

WeakRef の現在の実装は、オブジェクト ハンドラーのオーバーロードによって実装されています。最も一般的な実装 (pecl-weakref) は、読み取り専用メモリに割り当てられたスタックを変更し、PHP 7.3 ではそれが使用できなくなります。他の方法でオブジェクト ハンドラーを変更する他の実装も、未定義の動作を壊して依存したり、一貫性を捨てたりする危険性があります。

他の実装も可能です。krakjoe/uref は、低レベルの機能 (mprotect、0xCC、シグナル) を使用してweakrefsを実装する実装ですが、移植性、セグメンテーション違反の生成、保護されたメモリと暗黙的な機能が犠牲になります。シグナルハンドラーの制限。

原則として、弱参照オブジェクトは複雑ではなく、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 の弱い参照の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。