Schwache Referenzen in PHP 7.4
Einführung
Schwache Referenzen ermöglichen es Programmierern, Referenzen auf Objekte beizubehalten, während dieses Objekt das Objekt nicht verhindert vor Zerstörung; sie sind nützlich für die Implementierung von Cache-ähnlichen Strukturen. Sie verfügen derzeit über erweiterte Unterstützung in PHP.
Aktuelle Implementierungen von WeakRef werden alle durch Überladen von Objekthandlern implementiert, die beliebteste Implementierung (pecl-weakref) ändert den Stapel, der dem Nur-Lese-Speicher zugewiesen ist, und PHP 7.3 macht ihn nicht mehr verfügbar. Andere Implementierungen, die Objekthandler auf andere Weise ändern, laufen ebenfalls Gefahr, kaputt zu gehen, sich auf undefiniertes Verhalten zu verlassen und die Konsistenz zunichte zu machen.
Andere Implementierungen sind möglich. Krakjoe/uref ist eine Implementierung, die Low-Level-Funktionen (mprotect, 0xCC, Signale) verwendet, um schwache Refs zu implementieren, jedoch auf Kosten der Portabilität, der Erzeugung von Segmentierungsfehlern, des geschützten Speichers und des impliziten Signals Einschränkungen des Handlers.
Im Prinzip sind schwache Referenzobjekte nicht kompliziert, nur die (Missbrauchs-)Verwendung von Zend oder einer Ebene darunter, da wir es nicht direkt unterstützen.
Empfehlung
Wir unterstützen schwache Referenzen direkt auf einfachste Weise.
API
Die API:
final class WeakReference { public static function create(object $object) : WeakReference; public function get() : ?object; }
Abwärtsinkompatible Änderungen
Keine.
Übersetzung: https://wiki.php.net/rfc/weakrefs
Das obige ist der detaillierte Inhalt vonSchwache Referenzen in PHP 7.4. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!