ComposantsContext::has

Context::has ​

(PHP 8.6+, True Async 1.0)

php
public Context::has(string|object $key): bool

Vé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)); // false

Exemple #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 ​