Maison  >  Article  >  développement back-end  >  Comment puis-je accéder aux variables globales dans les fonctions PHP ?

Comment puis-je accéder aux variables globales dans les fonctions PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 06:44:03512parcourir

How Can I Access Global Variables Inside PHP Functions?

Accessibilité globale des variables PHP

Contrairement à de nombreux langages de programmation, le code PHP ne peut pas accéder directement aux variables définies en dehors des fonctions. Une idée fausse courante surgit lorsque l'on tente de récupérer des variables globales à l'intérieur d'une fonction, comme illustré dans le code suivant :

<code class="php">    $data = 'My data';

    function menugen() {
        echo "[" . $data . "]";
    }

    menugen();</code>

À la surprise de beaucoup, le résultat sera constitué de crochets vides ([]) au lieu du attendu "Mes données". Cet article explore le mécanisme sous-jacent à ce comportement et propose des solutions pour accéder aux variables globales dans les fonctions.

Déclaration de variable globale

PHP résout le problème en exigeant la déclaration explicite des variables globales dans la fonction où elles doivent être utilisées. Le mot-clé global sert à cet effet, comme le montre le code modifié ci-dessous :

<code class="php">    $data = 'My data';

    function menugen() {
        global $data; // <-- Declares $data as global
        echo "[" . $data . "]";
    }

    menugen();</code>

En ajoutant cette ligne, la fonction informe PHP qu'elle a l'intention d'utiliser une variable globale nommée $data. Sans cette déclaration, PHP suppose que toute variable introuvable localement est une variable locale et l'initialise comme telle. Par conséquent, la sortie devient vide.

Méthode d'accès alternative

Alternativement, les variables globales sont accessibles à l'aide du tableau $GLOBALS. Ce tableau associatif stocke toutes les variables globales avec leurs noms sous forme de clés. Bien que cette méthode permette de manipuler des variables globales, elle est généralement déconseillée en raison des risques de sécurité potentiels et de la complexité de la maintenabilité du code.

Éviter les variables globales

Dans les pratiques de programmation modernes , il est fortement recommandé d'éviter complètement d'utiliser des variables globales. Au lieu de cela, il est préférable de transmettre des données aux fonctions en tant que paramètres pour obtenir un code plus propre et plus maintenable. Dans l'exemple ci-dessus, cette approche ressemblerait à :

<code class="php">    $data = 'My data';

    function menugen($data) { // <-- Parameter declared
        echo "[" . $data . "]";
    }

    menugen($data); // <-- Data passed during call</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn