Soutenez-nous

FAQ PHPConsultez toutes les FAQ

Nombre d'auteurs : 68, nombre de questions : 580, dernière mise à jour : 29 juillet 2013 

 
OuvrirSommaireVariablesPortée des variables

Si l'on essaie d'accéder à une variabe globale depuis l'intérieur d'une fonction, on accédera en fait à la variable locale (interne à la fonction) du même nom, qui n'affichera rien si elle n'a pas été définie.

Pour rendre une variable globale accessible depuis une fonction, il faut expressément le spécifier à l'aide de l'instruction global suivie des noms des variables qui doivent être accessibles (séparés par des virgules).

Exemple :

 
Sélectionnez
<?
$nom = "Pierre";//Variable globale
function afficheNom(){
    echo $nom; //Cette ligne n'affiche rien à l'écran
    global $nom; //rend la variable globale $nom accessible
    echo $nom; //Affiche Pierre
}
?>
Mis à jour le 7 août 2008  par Eric Berger

Pour créer une variable globale, il suffit de la définir depuis la racine du script PHP, c'est à dire pas dans une fonction ou dans une classe.

Exemple :

 
Sélectionnez
<?
$var = "valeur"; //Cette variable est globale
function maFonction(){
    $var2 = "valeur2"; //Cette variable n'est pas globale
}
?>
Mis à jour le 7 août 2008  par Eric Berger

Une variable définie dans une fonction doit parfois être accessible depuis l'ensemble du script. Pour ce faire, il existe deux possibilités:

Dans la fonction En amenant la variable globale dans la fonction:

 
Sélectionnez
function majGlobale(){
    $varLoc = "Toto";
    global $varGlob; //La globale devient accessible dans la fonction
    $varGlob = $varLoc; //La valeur de la locale est donnée à la globale
}

echo $varGlob; //Affiche Toto

Avec Return Si seule une variable doit être transmise, il est possible de la transmettre en fin de fonction à l'aide de l'instruction Return.

Exemple :

 
Sélectionnez
function majGlobale(){
    $varLoc = "Toto";
    ...
    return $varLoc;
    //Le contenu de la variable $varLoc est renvoyé  la fonction a été appelée
}

$varGlob = majGlobale(); // La valeur retournée par la fonction majGlobale() est sauvée dans la variable globale $varGlob
Mis à jour le 7 août 2008  par Eric Berger
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2003 Developpez.com Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.