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.
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:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | it