Position actuelle: Accueil> Derniers articles> Obtenez la différence entre les constantes définies par l'utilisateur et les constantes de système

Obtenez la différence entre les constantes définies par l'utilisateur et les constantes de système

M66 2025-05-27

Dans la programmation PHP, une constante est un identifiant dont la valeur ne peut pas être modifiée pendant l'exécution. Les constantes en PHP peuvent être divisées en constantes prédéfinies par système et en constantes définies par l'utilisateur. Afin de déboguer ou d'analyser un programme, nous devons parfois obtenir toutes les constantes actuellement définies et les classer. La fonction get_defined_constants est un outil très pratique qui peut nous aider à obtenir toutes les constantes actuellement définies et leurs valeurs.

1. Introduction à get_defined_constants Fonction

get_defined_constants est une fonction intégrée PHP qui renvoie un tableau contenant toutes les constantes définies et leurs valeurs. La signature de la fonction est la suivante:

 array get_defined_constants ([ bool $categorize = false ] )
  • Si le paramètre passé est faux (par défaut), il renvoie un tableau unidimensionnel plat, la clé est le nom constant et la valeur est la valeur constante.

  • Si le paramètre passé est vrai , un tableau multidimensionnel groupé est renvoyé et classé en fonction du module d'extension auquel appartient la constante.

2. Obtenez tous les exemples constants

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

Le code ci-dessus sortira les noms et les valeurs de toutes les constantes actuelles, mais elle n'est pas regroupée, il est donc impossible de distinguer clairement le système des constantes d'utilisateur.

3. Group et extraire des constantes définies par l'utilisateur

Utilisez get_defined_constants (true) pour obtenir un tableau groupé par modules. Parmi eux, les constantes définies par l'utilisateur sont généralement regroupées sous l'utilisateur .

L'exemple de code est le suivant:

 define('MY_SITE_URL', 'https://m66.net');
define('VERSION', '1.0.0');

$constants = get_defined_constants(true);

// Extraire les constantes définies par l'utilisateur
$userConstants = isset($constants['user']) ? $constants['user'] : [];

echo "Constantes définies par l'utilisateur:\n";
foreach ($userConstants as $name => $value) {
    echo "$name => $value\n";
}

Exemple de sortie:

 Constantes définies par l'utilisateur:
MY_SITE_URL => https://m66.net
VERSION => 1.0.0

4. Compétences pratiques pour distinguer les constantes de système des constantes utilisateur

Si vous devez comparer plus attentivement les constantes d'utilisateurs et les constantes de système, vous pouvez obtenir une "constante de base" au début du script, puis obtenir à nouveau toutes les constantes après avoir défini les constantes d'utilisateur. Vous pouvez obtenir les constantes nouvellement ajoutées grâce à la comparaison du tableau.

Les exemples sont les suivants:

 // Obtenez la constante avant de définir la constante de l'utilisateur
$before = get_defined_constants();

// Définir les constantes d'utilisateur
define('APP_ENV', 'production');
define('BASE_URL', 'https://m66.net');

// Obtenez toutes les constantes
$after = get_defined_constants();

// Calculer les nouvelles constantes
$userConstants = array_diff_assoc($after, $before);

echo "Constantes d'utilisateurs ajoutées:\n";
foreach ($userConstants as $name => $value) {
    echo "$name => $value\n";
}

Cette approche peut être utilisée dans des environnements plus complexes, tels que le suivi quelles constantes sont définies par des fichiers de configuration ou certains composants pendant la phase de démarrage Framework.

5. Scénarios d'application

  • Afficher toutes les constantes personnalisées pendant le débogage

  • Générer automatiquement des documents

  • Analyser la charge constante de la phase d'initialisation du programme

  • Comparaison des différences de constantes définies par différents modules dans l'environnement de course

6. Résumé

get_defined_constants est une fonction puissante qui est particulièrement utile dans le débogage, la génération de documents et l'analyse d'exécution. En combinant la méthode de l'ensemble de la fonction de regroupement et de la différence de tableau, il peut distinguer efficacement les constantes de système des constantes d'utilisateur, l'amélioration de la contrôlabilité du programme et de la maintenabilité. Cette fonction est l'un des outils indispensables pour les développeurs qui souhaitent avoir une compréhension approfondie de l'environnement de course et des dépendances constantes.