Start · Sprachen · PHP · Referenz · wincache_ucache_delete

wincache_ucache_delete

Funktion

Löscht eine oder mehrere Variablen aus dem WinCache User-Cache.

seit PHP 1.1.0 Kategorie: misc

Signatur

wincache_ucache_delete(mixed $key): bool

Beschreibung

wincache_ucache_delete() entfernt einen einzelnen Eintrag oder mehrere Einträge aus dem WinCache User-Cache (ucache). Die Funktion gehört zur WinCache-Erweiterung, die speziell für Windows-Server (IIS) entwickelt wurde und einen gemeinsam genutzten Speicherbereich für PHP-Variablen bereitstellt.

Der Parameter key kann ein einzelner String-Schlüssel oder ein Array von Schlüsseln sein. Bei der Übergabe eines Arrays werden alle angegebenen Schlüssel in einem Schritt gelöscht. Die Funktion gibt true zurück, wenn alle angegebenen Schlüssel erfolgreich gelöscht wurden, und false, falls mindestens ein Schlüssel nicht gefunden oder nicht gelöscht werden konnte.

Typische Einsatzszenarien sind das gezielte Invalidieren von Cache-Einträgen nach Datenänderungen oder das Aufräumen temporärer Daten, die nicht mehr benötigt werden. In Kombination mit wincache_ucache_set() und wincache_ucache_get() bildet diese Funktion das Grundgerüst für ein vollständiges Cache-Management unter Windows/IIS.

Parameter

Name Typ Default Beschreibung
$key Pflicht mixed Ein String mit dem Schlüsselnamen des zu löschenden Eintrags oder ein Array von Strings mit mehreren Schlüsselnamen, die gleichzeitig gelöscht werden sollen.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn alle angegebenen Schlüssel erfolgreich gelöscht wurden. Gibt false zurück, wenn mindestens ein Schlüssel nicht im Cache vorhanden war oder nicht gelöscht werden konnte. Bei einem Array von Schlüsseln bedeutet false, dass mindestens einer der Schlüssel fehlgeschlagen ist.

Beispiele

Einzelnen Cache-Eintrag löschen

<?php
// Einen Wert in den Cache schreiben
wincache_ucache_set('user_42_profile', ['name' => 'Max Mustermann', 'age' => 30]);

// Später den Eintrag gezielt löschen (z. B. nach Profiländerung)
$result = wincache_ucache_delete('user_42_profile');

if ($result) {
    echo "Cache-Eintrag 'user_42_profile' erfolgreich gelöscht.";
} else {
    echo "Eintrag nicht gefunden oder Fehler beim Löschen.";
}
Cache-Eintrag 'user_42_profile' erfolgreich gelöscht.

Mehrere Cache-Einträge gleichzeitig löschen

<?php
// Mehrere Einträge in den Cache schreiben
wincache_ucache_set('session_token_1', 'abc123');
wincache_ucache_set('session_token_2', 'def456');
wincache_ucache_set('session_token_3', 'ghi789');

// Alle drei Einträge auf einmal löschen
$keysToDelete = ['session_token_1', 'session_token_2', 'session_token_3'];
$result = wincache_ucache_delete($keysToDelete);

if ($result) {
    echo "Alle Session-Token erfolgreich aus dem Cache entfernt.";
} else {
    echo "Mindestens ein Token konnte nicht gelöscht werden.";
}
Alle Session-Token erfolgreich aus dem Cache entfernt.

// Wichtig · Fallstricke

Plattformhinweis: WinCache ist ausschließlich für Windows-Systeme verfügbar und wird typischerweise mit dem IIS-Webserver eingesetzt. Auf Linux/Unix-Systemen ist diese Funktion nicht verfügbar. Produktivcode, der portabel sein soll, sollte die Existenz der Funktion mit function_exists('wincache_ucache_delete') prüfen.

Rückgabewert bei Arrays: Wird ein Array von Schlüsseln übergeben und ist auch nur einer der Schlüssel nicht vorhanden, gibt die Funktion false zurück — auch wenn alle anderen Schlüssel erfolgreich gelöscht wurden. Es empfiehlt sich daher, im Fehlerfall einzelne Schlüssel zu prüfen.

Alternativen: Wer alle Einträge auf einmal löschen möchte, sollte stattdessen wincache_ucache_clear() verwenden, da dies effizienter ist als das einzelne Löschen aller bekannten Schlüssel.