ConFoo 2025

Die Klasse WeakReference

(PHP 7 >= 7.4.0, PHP 8)

Einführung

Schwache Referenzen erlauben es dem Programmierer, eine Referenz auf ein Objekt zu behalten, die nicht verhindert, dass das Objekt zerstört wird. Sie sind nützlich für die Implementierung von Cache-ähnlichen Strukturen. Wenn das ursprüngliche Objekt zerstört wurde, wird beim Aufruf der Methode WeakReference::get() null zurückgegeben. Wenn der Referenzzähler für das ursprüngliche Objekt auf Null fällt, wird es zerstört; das Erstellen von schwachen Referenzen erhöht den refcount des referenzierten Objekts nicht.

WeakReferences können nicht serialisiert werden.

Klassenbeschreibung

final class WeakReference {
/* Methoden */
public __construct()
public static create(object $object): WeakReference
public get(): ?object
}

WeakReference-Beispiele

Beispiel #1 Grundlegende Verwendung von WeakReference

<?php

$obj
= new stdClass();
$weakref = WeakReference::create($obj);

var_dump($weakref->get());

unset(
$obj);

var_dump($weakref->get());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)#1 (0) {
}
NULL

Changelog

Version Beschreibung
8.4.0 Die Ausgabe von WeakReference::__debugInfo() enthält nun das referenzierte Objekt oder NULL, wenn die Referenz nicht mehr gültig ist.

Inhaltsverzeichnis

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top