PHP: Scope variabili
Scope delle variabili in PHP
Lo scope definisce in quali parti del programma una variabile è accessibile. Analizziamo gli scope disponibili in PHP.
Introduzione allo scope
In PHP le variabili non sono sempre accessibili ovunque. Lo scope indica il contesto in cui una variabile può essere letta o modificata: all’interno di una funzione, in tutto lo script o mantenendo il valore tra più esecuzioni.
Variabili locali
Le variabili dichiarate dentro una funzione sono locali. Esistono solo all’interno di quella funzione.
Codice Esempio: variabile locale

<?php
function testLocale() {
$x = 10;
echo "Dentro la funzione: $x<br>";
}
testLocale();
// Qui $x non è definita
// echo $x; // Errore
?>
<!-- Output nel browser:
Dentro la funzione: 10
-->
Variabili globali
Le variabili dichiarate fuori da ogni funzione sono globali. Non possono essere usate direttamente dentro le funzioni a meno che non vengano importate.
Codice Esempio: variabile globale

<?php
$y = 5;
function testGlobale() {
global $y;
echo "Dentro la funzione: $y<br>";
}
testGlobale();
echo "Fuori dalla funzione: $y<br>";
?>
<!-- Output nel browser:
Dentro la funzione: 5
Fuori dalla funzione: 5
-->
Codice Esempio: stampa array $GLOBALS

<?php
$y = 3;
$z = "Mario";
$GLOBALS['x'] = "Anna";
echo "<pre>";
print_r($GLOBALS);
echo "</pre>";
?>
<!-- Output nel browser (estratto semplificato):
Array
(
[y] => 3
[z] => Mario
[x] => Anna
[...altre variabili globali di sistema...]
)
-->
Variabili statiche
Le variabili statiche mantengono il loro valore tra le chiamate successive alla funzione.
Codice Esempio: variabile static

<?php
function contatore() {
static $count = 0;
$count++;
echo "Chiamata numero: $count<br>";
}
contatore();
contatore();
contatore();
?>
<!-- Output nel browser:
Chiamata numero: 1
Chiamata numero: 2
Chiamata numero: 3
-->
Tabella riassuntiva scope variabili
Scope | Descrizione | Esempio |
---|---|---|
Locale | Visibile solo dentro la funzione in cui è dichiarata | function test() { $x = 5; } |
Globale | Visibile nello script, ma per usarla in funzione serve global | global $x; |
Static | Mantiene il valore tra più chiamate della funzione | static $count = 0; |
$GLOBALS | Array associativo che contiene tutte le variabili globali | $GLOBALS['x'] |
Considerazioni
Comprendere lo scope delle variabili è essenziale per scrivere codice ordinato e senza errori. Una gestione corretta evita conflitti e garantisce che i dati siano accessibili solo dove necessario.