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 サイトの他の関連記事を参照してください。