Cet exemple définit une variable globale $Lampe = 1;.Cette variable ne sera visible que dans le code principal et PAS dans les fonctions.
$Lampe
= 1;
function Test()
{
echo $Lampe; //Rien
}
echo $Lampe; // 1
Test();
L'exemple suivant, de la même trempe que le précédent, va afficher 0, donc :
$Lampe = 5;
$Caribou = 8;
function Test()
{
echo $Lampe + $Caribou; // 0
}
Test();
Si on voulait récupérer le contenu des variables $Lampe et $Caribou dans la fonction, il faudrait utiliser le mot-clé global :
$Lampe = 5;
$Caribou = 8;
function Test()
{
global $Lampe , $Caribou;
echo $Lampe + $Caribou; // 13
}
Test();
Attention donc, car la fonction peut alors manipuler les vraies variables globales :
$Lampe = 5;
function Test()
{
global $Lampe
$Lampe++;
}
Test();
echo $Lampe; // 6 !!!
Sit la fonction Test qui contient une variable $Lampe, qui s'incrémente automatiquement. Appelons cette fonction 2 fois de suite . A chaque appel, la variable $Lampe est réinitialisée.
function Test()
{
$Lampe++;
echo $Lampe;
}
Test(); // 1
Test(); // 1
Pour conserver la valeur de $Lampe entre chaque appel, on utilise static:
function Test()
{
static $Lampe;
$Lampe++;
echo $Lampe;
}
Test(); // 1
Test(); // 2
Evidemment, on ne peut pas avoir dans une même fonction une variable static $Lampe et global $Lampe ! Logique...
$Pays = "Suisse";
$$Pays = "Geneve";
$$$Pays = "Meyrin";
$$$$Pays = "CentreCommercial";
echo $Pays; // Suisse
echo $$Pays; // Geneve
echo $$$Pays; // Meyrin
echo $$$$Pays; // CentreCommercial
On peut également y accéder de cette manière (Le contenu de la variable devient son nom):
$Pays = "Suisse";Ou encore comme ceci :
$Pays = "Suisse";
$$Pays = "Geneve";
$$$Pays = "Meyrin";
$$$$Pays = "CentreCommercial";
echo $$$Suisse; // Geneve
Logique : $Pays = Suisse, donc $$Pays = Geneve : ça saute une étape. Avec la même logique :
$Suisse = Geneve, donc $$Suisse = Meyrin, et parc conséquent $$$Suisse = CentreCommercial.
---