Portée des variables PHP
Portée des variables PHP
En PHP, les variables peuvent être déclarées n'importe où dans le script.
La portée d'une variable est la partie du script où la variable peut être référencée/utilisée.
PHP a trois portées de variables différentes :
- local
- global
- statique
Portée mondiale et locale
Une variable déclarée en dehors d'une fonction a une SCOPE GLOBALE et n'est accessible qu'en dehors d'une fonction :
Exemple
Variable à portée globale :
<?php
$x = 5; // global scope
function myTest() {
// using x inside this function will generate an error
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
echo "<p>Variable x outside function is: $x</p>";
?>
Une variable déclarée dans une fonction a une PORTÉE LOCALE et n'est accessible qu'au sein de cette fonction :
Exemple
Variable à portée locale :
<?php
function myTest() {
$x = 5; // local scope
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
// using x outside the function will generate an error
echo "<p>Variable x outside function is: $x</p>";
?>
Vous pouvez avoir des variables locales portant le même nom dans différentes fonctions, car les variables locales ne sont reconnues que par la fonction dans laquelle elles sont déclarées.
PHP Le mot-clé global
Le global
mot clé est utilisé pour accéder à une variable globale à partir d'une fonction.
Pour ce faire, utilisez le mot- global
clé avant les variables (à l'intérieur de la fonction) :
Exemple
<?php
$x = 5;
$y = 10;
function myTest()
{
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
?>
PHP stocke également toutes les variables globales dans un tableau appelé
. Le contient le nom de la variable. Ce tableau est également accessible depuis les fonctions et peut être utilisé pour mettre à jour directement les variables globales.$GLOBALS[index]
index
L'exemple ci-dessus peut être réécrit comme ceci :
Exemple
<?php
$x = 5;
$y = 10;
function myTest()
{
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
PHP Le mot-clé statique
Normalement, lorsqu'une fonction est terminée/exécutée, toutes ses variables sont supprimées. Cependant, nous voulons parfois qu'une variable locale ne soit PAS supprimée. Nous en avons besoin pour un autre travail.
Pour cela, utilisez le static
mot clé lors de la première déclaration de la variable :
Exemple
<?php
function myTest()
{
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
Ensuite, chaque fois que la fonction est appelée, cette variable contiendra toujours les informations qu'elle contenait depuis le dernier appel de la fonction.
Remarque : La variable est toujours locale à la fonction.