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

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

Barbara Streisand
Barbara Streisandoriginal
2024-12-18 18:53:13577parcourir

How Can I Access Global Variables within PHP Functions?

Accès aux variables globales dans les fonctions

En PHP, l'accès aux variables globales dans les fonctions présente certains défis. Considérons le code suivant :

<br>$sxml = new SimpleXMLElement('<somexml/>');</p>
<p>function foo(){</p>
<pre class="brush:php;toolbar:false">$child = $sxml->addChild('child');

}

foo();

Ce code tente d'accéder à la variable globale $sxml depuis l'intérieur la fonction foo(), mais elle échoue. Les fonctions en PHP ont leur propre portée locale et ne peuvent pas accéder aux variables de la portée globale par défaut.

Pour accéder à une variable globale au sein d'une fonction, il existe plusieurs options :

  1. Passer la variable globale comme argument :
    Vous pouvez transmettre la variable globale comme argument à la fonction, lui permettant d'accéder it.

    function foo($sxml){
        $child = $sxml->addChild('child');
    }
    
    foo($sxml);
  2. Déclarer la variable globale en tant que variable globale :
    Vous pouvez déclarer la variable globale en tant que variable globale dans la fonction en utilisant le mot clé global.

    function foo(){
        global $sxml;
        $child = $sxml->addChild('child');
    }
    
    foo();
  3. Utiliser Fermetures :
    Les fermetures en PHP vous permettent d'accéder aux variables externes au sein d'une fonction.

    function foo() use (&$sxml) {
        $child = $sxml->addChild('child');
    }
    
    foo();

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