Start · Sprachen · PHP · Referenz · wincache_ucache_get

wincache_ucache_get

Funktion

Liest eine oder mehrere im WinCache User-Cache gespeicherte Variablen anhand ihres Schlüssels.

seit PHP 1.1.0 Kategorie: misc

Signatur

wincache_ucache_get(mixed $key, bool &$success = null): mixed

Beschreibung

wincache_ucache_get() ruft den Wert einer zuvor mit wincache_ucache_set() oder wincache_ucache_add() im WinCache User-Cache abgelegten Variable ab. Der Cache wird dabei über alle PHP-Prozesse und Worker-Threads des IIS-Webservers hinweg gemeinsam genutzt, was ihn für das Teilen von Daten zwischen Requests geeignet macht.

Der Parameter $key kann entweder ein einzelner String-Schlüssel oder ein Array von Schlüsseln sein. Bei einem Array von Schlüsseln gibt die Funktion ein assoziatives Array mit den gefundenen Schlüssel-Wert-Paaren zurück. Schlüssel, die nicht im Cache gefunden werden, fehlen im Ergebnis-Array.

Der optionale Referenzparameter $success wird auf true gesetzt, wenn der Schlüssel gefunden und der Wert erfolgreich gelesen wurde, andernfalls auf false. Dies ist besonders nützlich, wenn der gecachte Wert selbst false sein könnte, da der Rückgabewert in diesem Fall nicht zur Unterscheidung zwischen "nicht gefunden" und dem Wert false ausreicht.

WinCache steht ausschließlich auf Windows-Systemen mit dem IIS-Webserver zur Verfügung und muss als PHP-Erweiterung installiert und aktiviert sein. Es stellt eine Alternative zu anderen User-Cache-Lösungen wie APCu dar, jedoch spezifisch für die Windows-Plattform.

Parameter

Name Typ Default Beschreibung
$key Pflicht mixed Ein String mit dem Schlüsselnamen der abzurufenden Variable oder ein Array von Schlüsselnamen, um mehrere Einträge auf einmal zu lesen.
$success bool null Wird per Referenz übergeben und nach dem Aufruf auf true gesetzt, wenn der Schlüssel erfolgreich gefunden wurde, andernfalls auf false. Dient zur sicheren Unterscheidung zwischen einem nicht vorhandenen Eintrag und einem gecachten false-Wert.

Rückgabewert

Typ
mixed
Beschreibung
Gibt den gespeicherten Wert zurück, wenn ein einzelner Schlüssel angegeben wurde und gefunden wurde. Bei einem Array von Schlüsseln wird ein assoziatives Array mit den gefundenen Schlüssel-Wert-Paaren zurückgegeben. Wird kein Eintrag gefunden, gibt die Funktion false zurück.

Beispiele

Einzelnen Wert aus dem User-Cache lesen

<?php
// Wert zuvor speichern
wincache_ucache_set('benutzername', 'Max Mustermann', 300);

// Wert abrufen
$name = wincache_ucache_get('benutzername', $erfolg);

if ($erfolg) {
    echo 'Gefunden: ' . $name;
} else {
    echo 'Schlüssel nicht im Cache gefunden.';
}
Gefunden: Max Mustermann

Mehrere Werte auf einmal lesen

<?php
// Mehrere Werte speichern
wincache_ucache_set('farbe', 'blau', 600);
wincache_ucache_set('groesse', 42, 600);
wincache_ucache_set('aktiv', true, 600);

// Mehrere Schlüssel auf einmal abrufen
$werte = wincache_ucache_get(['farbe', 'groesse', 'aktiv', 'nichtvorhanden']);

print_r($werte);
Array ( [farbe] => blau [groesse] => 42 [aktiv] => 1 )

Sichere Unterscheidung zwischen false und nicht gefunden

<?php
// false als Wert cachen
wincache_ucache_set('flag', false, 120);

$wert = wincache_ucache_get('flag', $erfolg);

if ($erfolg) {
    // Der Schlüssel existiert, Wert ist false
    var_dump($wert);    // bool(false)
} else {
    echo 'Schlüssel nicht vorhanden.';
}
bool(false)

// Wichtig · Fallstricke

Plattformbeschränkung: WinCache ist ausschließlich für Windows + IIS verfügbar. Code, der diese Funktion nutzt, ist nicht portabel auf Linux/macOS. Prüfen Sie die Verfügbarkeit mit function_exists('wincache_ucache_get').

Ablauf (TTL): Abgelaufene Einträge werden beim Zugriff als nicht vorhanden behandelt. Der Rückgabewert ist dann false und $success wird auf false gesetzt.

Race Conditions: In Mehrprozess-Umgebungen kann ein Eintrag zwischen dem Prüfen und dem Lesen ablaufen. Verwenden Sie $success als zuverlässigen Indikator statt nur den Rückgabewert zu prüfen.