Context::has
(PHP 8.6+, True Async 1.0)
public Context::has(string|object $key): bool
Prueft, ob ein Wert mit dem angegebenen Schluessel im aktuellen Kontext oder in einem der uebergeordneten Kontexte existiert. Die Suche wird in der Hierarchie nach oben durchgefuehrt.
Parameter
- key
- Der zu pruefende Schluessel. Kann ein String oder ein Objekt sein.
Rueckgabewert
true, wenn der Schluessel im aktuellen oder einem uebergeordneten Kontext gefunden wird, andernfalls false.
Beispiele
Beispiel #1 Schluessel vor der Verwendung pruefen
<?php
use function Async\current_context;
use function Async\spawn;
current_context()->set('locale', 'ru_RU');
spawn(function() {
if (current_context()->has('locale')) {
$locale = current_context()->find('locale');
echo "Locale: {$locale}\n"; // "Locale: ru_RU"
} else {
echo "Locale nicht gesetzt, Standardwert wird verwendet\n";
}
});
Beispiel #2 Pruefung mit einem Objekt-Schluessel
<?php
use function Async\current_context;
$cacheKey = new stdClass();
current_context()->set($cacheKey, new RedisCache());
if (current_context()->has($cacheKey)) {
echo "Cache ist verfuegbar\n";
}
$unknownKey = new stdClass();
var_dump(current_context()->has($unknownKey)); // false
Beispiel #3 Hierarchische Pruefung
<?php
use function Async\current_context;
use function Async\spawn;
current_context()->set('global_flag', true);
spawn(function() {
current_context()->set('local_flag', true);
spawn(function() {
var_dump(current_context()->has('global_flag')); // true (von Root)
var_dump(current_context()->has('local_flag')); // true (vom Eltern-Kontext)
var_dump(current_context()->has('unknown')); // false
});
});
Siehe auch
- Context::find — Wert anhand des Schluessels suchen
- Context::get — Wert abrufen (wirft Exception)
- Context::hasLocal — Nur im lokalen Kontext pruefen