Position actuelle: Accueil> Derniers articles> La différence entre get_defined_constants (true) et get_defined_constants (false)

La différence entre get_defined_constants (true) et get_defined_constants (false)

M66 2025-05-28

Dans PHP, get_defined_constants () est une fonction très pratique qui peut être utilisée pour obtenir toutes les constantes définies dans le script actuel. Cette fonction est particulièrement utile lorsque nous débogues ou voulons comprendre l'état des constantes dans l'environnement de course.

Cette fonction peut accepter un paramètre booléen: catégorie . Lorsque vous appelez get_defined_constants (true) et get_defined_constants (false) , le résultat de retour est différent. Comprendre leurs différences nous aidera à mieux utiliser cette fonction pour le débogage ou l'analyse.

1. Le résultat de retour de get_defined_constants (false)

Lorsque vous appelez get_defined_constants (false) (ou appelez directement sans passer paramètres), le retour est un tableau unidimensionnel, le nom de clé est le nom de la constante et la valeur de clé est la valeur correspondante. Par exemple:

 print_r(get_defined_constants(false));

Sortie possible:

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

Ce sont toutes des constantes actuellement définies, non regroupées, et la sortie directement avec le nom constant comme nom de clé. Ce modèle est plus intuitif et concis, et convient à une vision rapide dont les constantes existent et leurs valeurs.

2. Le résultat de retour de get_defined_constants (true)

Lorsque vous appelez get_defined_constants (true) , le tableau à deux dimensions retourné est, c'est-à-dire que ces constantes seront classées et regroupées par "module". Les groupes communs incluent le noyau , le PCRE , la date , l'utilisateur , etc. Ce modèle convient plus aux scénarios où les constantes doivent être gérées de manière classifiée.

Par exemple:

 print_r(get_defined_constants(true));

La sortie peut être similaire:

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

    [pcre] => Array
        (
            [PREG_PATTERN_ORDER] => 1
            ...
        )

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

Cette structure permet une compréhension plus claire de la source des constantes, qui sont utiles pour l'analyse définie par PHP Core, qui sont fournies par des extensions, et qui sont définies par l'utilisateur.

3. Comparaison des scénarios applicables

Comment utiliser Retour à la structure Convient pour une utilisation
get_defined_constants (false) Réseau unidimensionnel Débogage simple, traversée rapide
get_defined_constants (true) Tableau bidimensionnel (catégorie) Analyse approfondie pour distinguer les sources

4. Exemple: Filtrez des constantes définies par l'utilisateur

Si vous souhaitez simplement obtenir des constantes définies par l'utilisateur (définitions de noyau ou d'extension non php), l'utilisation de get_defined_constants (true) ['utilisateur'] est une manière très concise:

 define('SITE_NAME', 'MySite');
define('SITE_URL', 'https://m66.net');

$userConstants = get_defined_constants(true)['user'];

print_r($userConstants);

Résultat de sortie:

 Array
(
    [SITE_NAME] => MySite
    [SITE_URL] => https://m66.net
)

Ceci est particulièrement utile dans les grands projets et peut vous aider à vérifier rapidement si toutes les constantes personnalisées attendues sont définies.

en conclusion

get_defined_constants () est l'une des fonctions d'outils très précieuses dans PHP. Lorsque vous avez besoin d'une liste de carreaux de constantes, utilisez des paramètres faux ou ne pas passer; Lorsque vous avez besoin d'une classification plus détaillée des sources constantes, l'utilisation de True est un meilleur choix. La maîtrise de la différence entre ces deux usages vous permet d'utiliser des informations constantes plus efficacement dans le développement et le débogage.