Ambito delle variabili PHP
Ambito delle variabili PHP
In PHP, le variabili possono essere dichiarate ovunque nello script.
L'ambito di una variabile è la parte dello script in cui è possibile fare riferimento/utilizzare la variabile.
PHP ha tre diversi ambiti di variabili:
- Locale
- globale
- statico
Ambito globale e locale
Una variabile dichiarata al di fuori di una funzione ha un AMBITO GLOBALE ed è accessibile solo al di fuori di una funzione:
Esempio
Variabile con portata 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>";
?>
Una variabile dichiarata all'interno di una funzione ha un AMBITO LOCALE ed è possibile accedervi solo all'interno di quella funzione:
Esempio
Variabile con ambito 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>";
?>
Puoi avere variabili locali con lo stesso nome in diverse funzioni, perché le variabili locali sono riconosciute solo dalla funzione in cui sono dichiarate.
PHP La parola chiave globale
La global
parola chiave viene utilizzata per accedere a una variabile globale dall'interno di una funzione.
Per fare ciò, usa la global
parola chiave prima delle variabili (all'interno della funzione):
Esempio
<?php
$x = 5;
$y = 10;
function myTest()
{
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
?>
PHP memorizza anche tutte le variabili globali in un array chiamato
. Contiene il nome della variabile. Questo array è accessibile anche dall'interno delle funzioni e può essere utilizzato per aggiornare direttamente le variabili globali.$GLOBALS[index]
index
L'esempio sopra può essere riscritto in questo modo:
Esempio
<?php
$x = 5;
$y = 10;
function myTest()
{
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
PHP La parola chiave statica
Normalmente, quando una funzione viene completata/eseguita, tutte le sue variabili vengono cancellate. Tuttavia, a volte vogliamo che una variabile locale NON venga eliminata. Ne abbiamo bisogno per un altro lavoro.
Per fare ciò, usa la static
parola chiave quando dichiari per la prima volta la variabile:
Esempio
<?php
function myTest()
{
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
Quindi, ogni volta che la funzione viene chiamata, quella variabile conterrà ancora le informazioni che conteneva dall'ultima volta che la funzione è stata chiamata.
Nota: la variabile è ancora locale alla funzione.