Maison  >  Article  >  développement back-end  >  Comment accéder aux variables globales dans une fonction PHP ?

Comment accéder aux variables globales dans une fonction PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-31 13:20:02349parcourir

How to Access Global Variables within a PHP Function?

Accéder à une variable globale dans une fonction PHP

Dans divers langages de programmation, les variables déclarées en dehors des fonctions peuvent être utilisées dans les fonctions. Cependant, contrairement aux attentes, le code PHP suivant produit une sortie de tableau vide :

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

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

menugen();</code>

Pour comprendre ce comportement, nous approfondissons les règles de portée des variables PHP. Par défaut, les fonctions n'ont accès qu'aux variables définies dans leur portée immédiate. Pour accéder aux variables externes, le mot-clé global doit être utilisé dans la fonction.

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

function menugen() {
    global $data; // Add this line

    echo "[" . $data . "]";
}

menugen();</code>

En incorporant cette ligne, la variable $data est déclarée comme globale dans la fonction menugen, permettant son utilisation. Alternativement, les variables en dehors de la portée de la fonction sont accessibles à l'aide du tableau $GLOBALS.

<code class="php">echo $GLOBALS['data'];</code>

Il est crucial de noter que si l'utilisation des variables globales est pratique, elle peut introduire de la complexité et de la fragilité du code. Une approche plus robuste consiste à transmettre les données aux fonctions en tant que paramètres, améliorant ainsi la maintenabilité du code et réduisant le recours aux variables globales. Ceci peut être réalisé comme suit :

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

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

menugen($data); // Pass data at function 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