Position actuelle: Accueil> Derniers articles> get_defined_constants () Pourquoi retourne-t-il des tableaux imbriqués?

get_defined_constants () Pourquoi retourne-t-il des tableaux imbriqués?

M66 2025-05-20

Pendant le développement de PHP, get_defined_constants () est une fonction très utile qui renvoie toutes les constantes définies. Cependant, lorsque de nombreux développeurs l'utilisent la première fois qu'ils sont confondus par ses résultats de retour: pourquoi cette fonction renvoie-t-elle un tableau imbriqué au lieu d'une simple liste de paires de valeurs clés?

Fonction Introduction

get_defined_constants () est une fonction intégrée qui renvoie toutes les constantes définies dans le script actuel. La syntaxe est la suivante:

 array get_defined_constants ([ bool $categorize = false ] )

Lorsque nous appelons get_defined_constants () et passer dans le paramètre $ categorize = true , il renvoie le tableau imbriqué par "catégorisation" de la constante. Même si le paramètre n'est pas explicitement transmis, certains environnements peuvent renvoyer des structures imbriquées par défaut.

Pourquoi retourner les tableaux imbriqués?

Il existe de nombreux types de constantes en PHP, couvrant la langue centrale, les extensions, la personnalisation des utilisateurs et d'autres aspects. Pour afficher ces informations plus clairement, PHP fournit des moyens de classification d'organiser les constantes. Lorsque vous utilisez:

 print_r(get_defined_constants(true));

Vous verrez une structure de sortie similaire à ce qui suit:

 Array
(
    [Core] => Array
        (
            [E_ERROR] => 1
            [E_WARNING] => 2
            ...
        )

    [date] => Array
        (
            [DATE_ATOM] => Y-m-d\TH:i:sP
            ...
        )

    [user] => Array
        (
            [MY_CUSTOM_CONST] => 123
        )
)

Cette structure de réseau imbriquée nous permet de comprendre plus facilement quelles constantes sont définies par le module de base, qui sont fournis par des extensions, et lesquels sont définis par l'utilisateur. Cette organisation est utile lors du débogage et du dépannage des problèmes, en particulier dans les grands projets ou environnements où plusieurs extensions sont utilisées.

Et si vous voulez juste obtenir une liste pure?

Si vous souhaitez simplement obtenir une liste simple de constantes sans vous soucier de la classification, vous pouvez définir le paramètre sur False (ou omettre le paramètre):

 $constants = get_defined_constants(false);
print_r($constants);

Cela rendra un tableau plat, par exemple:

 Array
(
    [E_ERROR] => 1
    [E_WARNING] => 2
    [DATE_ATOM] => Y-m-d\TH:i:sP
    [MY_CUSTOM_CONST] => 123
)

Cette approche convient aux situations où vous devez trouver rapidement une valeur constante, ou si vous ne vous souciez pas d'où elle vient du traitement d'une constante.

Exemples d'application pratiques

Lors du débogage, vous souhaiterez peut-être vérifier si les constantes personnalisées sont correctement définies:

 define('SITE_URL', 'https://m66.net');
$constants = get_defined_constants(true);

if (isset($constants['user']['SITE_URL'])) {
    echo "constante SITE_URL Défini,La valeur est:" . $constants['user']['SITE_URL'];
}

De cette façon, nous pouvons clairement localiser la source de définition d'une certaine constante pour éviter le problème des conflits de dénomination constants dans le projet.

Conclusion

La raison pour laquelle GET_DEFINED_CONSTANTS () dans PHP revient les tableaux imbriqués est d'améliorer la lisibilité et la maintenabilité, en particulier dans les grands systèmes qui peuvent clairement distinguer les sources de constantes. Bien qu'il semble compliqué à première vue, une fois qu'il comprend sa structure et son objectif, il deviendra un outil puissant entre les mains des développeurs.