/
Variabili

Variabili globali in PHP

22. 08. 2019

Le variabili globali sono disponibili in qualsiasi momento in qualsiasi parte dell'applicazione e non hanno bisogno di essere passate.

Attenzione: Un'applicazione ben progettata non dovrebbe usare variabili globali perché violano il principio di incapsulamento e possono causare errori difficili da rilevare se gestiti in modo disattento.

Esempio di utilizzo:

$a = 1;
$b = 2;
function suma(): void
{
global $a, $b;
$b = $a + $b;
}
suma();
echo $b; // stampa il numero 3 perché la variabile $b è globale

Notate che abbiamo ottenuto le variabili $a e $b fuori dal loro contesto naturale. Questo comportamento è chiamato "magico" perché se un'altra funzione sovrascrive le variabili attualmente in uso, l'applicazione sperimenterà una condizione inaspettata.

Correttamente, l'applicazione dovrebbe incapsulare e passare le variabili ogni volta:

$a = 1;
$b = 2;
function suma(int $a, int $b): int
{
return $a + $b;
}
echo suma($a, $b); // stampa 3

Grazie a questo, possiamo chiamare la funzione dinamicamente con diversi parametri di input e il suo output dipenderà solo dagli input, non dall'ambiente.

Ottenere i parametri di input dall'URL

Forse l'unico uso ragionevole delle variabili globali è nel parsing dell'input dell'utente, nel qual caso stiamo parlando di variabili superglobali.

In questo caso, è un design pulito perché la variabile dovrebbe essere di sola lettura, non di sola scrittura, e inoltre è la stessa in tutta l'applicazione:

function getNameFromUrl(): string
{
return isset($_GET['nome'])
? htmlspecialchars($_GET['nome'])
: '';
}
echo getNameFromUrl();

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
4.