Position actuelle: Accueil> Derniers articles> Utilisez la fonction get_defined_constants pour explorer les différences de visibilité entre les constantes et les variables globales. Savez-vous comment ils fonctionnent sous différentes lunettes?

Utilisez la fonction get_defined_constants pour explorer les différences de visibilité entre les constantes et les variables globales. Savez-vous comment ils fonctionnent sous différentes lunettes?

M66 2025-06-15

En PHP, les constantes et les variables globales sont deux types de variables communes. Ils diffèrent considérablement par portée et visibilité. Les constantes sont généralement visibles tout au long du script, tandis que les variables globales sont portée. Dans cet article, nous explorerons les différences de visibilité entre les constantes et les variables globales sous différentes lunettes en utilisant la fonction GET_DEFINE_CONSTANTS intégrée de PHP.

La différence fondamentale entre les constantes et les variables globales

Tout d'abord, nous devons comprendre les concepts de base des constantes et des variables globales.

constante

Une constante est un identifiant qui est immuable tout au long du cycle de vie du script. Une fois qu'une constante est définie, sa valeur ne peut pas être modifiée. Les constantes n'ont pas besoin d'être marquées de $ lorsqu'elles sont définies, et ils peuvent être accessibles n'importe où dans le script.

Variables globales

Une variable globale fait référence à une variable définie dans la portée globale. Il n'est pas directement accessible dans une méthode de fonction ou de classe et doit être accessible en utilisant le mot-clé global ou via le tableau $ global .

Utilisez la fonction get_defined_constants

get_defined_constants est une fonction PHP très utile qui répertorie toutes les constantes définies. Nous pouvons l'utiliser pour vérifier la visibilité des constantes dans différentes lunettes. Voici un exemple de code qui montre comment utiliser la fonction get_defined_constants pour obtenir la visibilité d'une constante:

 <?php

// Définir les constantes
define('MY_CONSTANT', 'Hello, World!');

function testConstantVisibility() {
    // Obtenez toutes les constantes dans la portée actuelle
    print_r(get_defined_constants());
}

testConstantVisibility();
?>

Dans ce code, nous définissons une My_Constant constante et imprimons toutes les constantes à l'aide de la fonction get_defined_constants dans la fonction TestConstantVisibilité de fonction. Quelle que soit la portée dans laquelle nous nous trouvons, le My_Constant constant est visible.

Résultats en cours:

 Array
(
    [MY_CONSTANT] => Hello, World!
    ...
)

Comme vous pouvez le voir sur la sortie, la constante my_constant est toujours visible à l'intérieur de la fonction, ce qui signifie que la constante est globalement visible en php.

Visibilité des variables globales

Les variables globales sont différentes des constantes et ne sont pas accessibles directement dans une fonction. Nous devons utiliser le mot-clé global ou le tableau Globals $ Global pour accéder aux variables globales. Voici un code qui démontre la visibilité des variables globales:

 <?php

// Définir les variables globales
$myGlobalVar = 'I am a global variable!';

function testGlobalVariableVisibility() {
    global $myGlobalVar; // utiliser global Mots clés
    echo $myGlobalVar;
}

testGlobalVariableVisibility();
?>

Résultats en cours:

 I am a global variable!

En utilisant le mot-clé global à l'intérieur de la fonction, nous pouvons accéder à la variable globale $ myGlobalVar et à émettre avec succès sa valeur.

Comparaison de la visibilité des constantes et des variables globales

Maintenant, comparons les performances des constantes et des variables globales sous différentes lunettes. Grâce au code suivant, nous pouvons tester les différences de visibilité entre les constantes et les variables globales en même temps.

 <?php

// Définir les constantes
define('MY_CONSTANT', 'Hello, World!');

// Définir les variables globales
$myGlobalVar = 'I am a global variable!';

function testVisibility() {
    // Obtenez toutes les constantes dans la portée actuelle
    echo "constante MY_CONSTANT: " . MY_CONSTANT . "\n";
    
    // utiliser global Mots clés访问Variables globales
    global $myGlobalVar;
    echo "Variables globales myGlobalVar: " . $myGlobalVar;
}

testVisibility();
?>

Résultats en cours:

 constante MY_CONSTANT: Hello, World!
Variables globales myGlobalVar: I am a global variable!

Grâce à cet exemple, nous voyons que les constantes sont accessibles directement n'importe où, tandis que les variables globales doivent être accessibles via le mot clé global dans la fonction. Il s'agit de la principale différence de portée entre les constantes et les variables globales.

résumé

En PHP, il existe des différences significatives de visibilité entre les constantes et les variables globales. Les constantes sont visibles tout au long du script, quelle que soit leur portée. Les variables globales ne sont visibles que dans la portée globale et doivent être accessibles via le mot-clé global ou le tableau des Globals $ . Cette différence est importante pour la gestion de la portée lors de la programmation, et comprendre leur comportement peut aider les développeurs à mieux écrire du code et à éviter les erreurs potentielles.