Génération PHP.net » La portée des variables

La portée des variables

Généralités

Dépendamment du lieu de déclaration de la variable, il est possible que celle-ci ne soit pas accessible à certains endroits.
C’est notamment le cas des variables déclarées à l’intérieur des fonctions.

Exemple

<?php
$variable = 'Salut';  
 
// Déclaration de la fonction
function Ma_Fonction() {
  $variable = 'Bonjour';
}
 
Ma_Fonction();
 
// Affichera "Salut" et non "Bonjour"
echo $variable;
?>

Variable superglobales $GLOBALS

$GLOBALS est une variables superglobales référencant toutes les variables disponibles lors de l’exécution du code. Cette variable tableau est donc accessible en tout temps et vous permet d’accéder à vos variables peu importe où vous vous trouvez.

Exemple

<?php
$variable = 'Salut';  
 
function Ma_Fonction() {
  $GLOBALS['variable'] = 'Bonjour';
}
 
Ma_Fonction();
 
// Affichera "Bonjour"
echo $variable;
?>

Les variables statiques

Si vous désirez conserver une valeur lors du prochain appel à une fonction, il est possible de la déclarée de manière statique avec le mot-clef static.
Cela veut dire que la variable sera conservé à l’intérieur de la fonction et pourra être réutilisé lorsque la fonction sera réexcutée.

<?php
function PlusUn() {
  Static $nombre = 0;
  $nombre++;
  return $nombre;
}
 
// Affichera '1'
echo PlusUn();
 
// Affichera '2'
echo PlusUn();
?>

Lors du premier appel à la fonction, $nombre ne contient aucune valeur donc est égal en théorique à 0. La fonction incrémentera la valeur à 1 et retournement cette valeur.

Lors du deuxième appel à la fonction, $nombre contient encore la valeur 1 car elle a été déclarée comme étant statique. La fonction incrémentera donc la valeur à 2 et retournement évidemment 2.