Context::has
(PHP 8.6+, True Async 1.0)
php
public Context::has(string|object $key): boolVérifie si une valeur avec la clé spécifiée existe dans le contexte courant ou dans l'un des contextes parents. La recherche est effectuée en remontant la hiérarchie.
Paramètres
key : La clé à vérifier. Peut être une chaîne de caractères ou un objet.
Valeur de retour
true si la clé est trouvée dans le contexte courant ou dans un contexte parent, false sinon.
Exemples
Exemple #1 Vérification d'une clé avant utilisation
php
<?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 non définie, utilisation de la valeur par défaut\n";
}
});Exemple #2 Vérification avec une clé objet
php
<?php
use function Async\current_context;
$cacheKey = new stdClass();
current_context()->set($cacheKey, new RedisCache());
if (current_context()->has($cacheKey)) {
echo "Le cache est disponible\n";
}
$unknownKey = new stdClass();
var_dump(current_context()->has($unknownKey)); // falseExemple #3 Vérification hiérarchique
php
<?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 (depuis la racine)
var_dump(current_context()->has('local_flag')); // true (depuis le parent)
var_dump(current_context()->has('unknown')); // false
});
});Voir aussi
- Context::find --- Rechercher une valeur par clé
- Context::get --- Obtenir une valeur (lève une exception)
- Context::hasLocal --- Vérifier uniquement dans le contexte local