Les variables globales sont disponibles à tout moment dans n'importe quelle partie de l'application et n'ont pas besoin d'être transmises.
Une application bien conçue ne devrait pas utiliser de variables globales car elles violent le principe d'encapsulation et peuvent provoquer des erreurs difficiles à détecter si elles sont manipulées sans précaution.
Exemple d'utilisation :
$a = 1;$b = 2;function suma(): void{global $a, $b;$b = $a + $b;}suma();echo $b; // imprime le nombre 3 car la variable $b est globale
Notez que nous avons obtenu les variables $a
et $b
en dehors de leur contexte naturel. Ce comportement est qualifié de "magique" car si une autre fonction remplace les variables en cours d'utilisation, l'application connaîtra une condition inattendue.
Correctement, l'application devrait encapsuler et passer les variables à chaque fois :
$a = 1;$b = 2;function suma(int $a, int $b): int{return $a + $b;}echo suma($a, $b); // imprime 3
Grâce à cela, nous pouvons appeler la fonction de manière dynamique avec différents paramètres d'entrée et sa sortie ne dépendra que des entrées, et non de l'environnement.
Peut-être que la seule utilisation raisonnable des variables globales est l'analyse syntaxique des entrées utilisateur, auquel cas nous parlons de variablessuperglobales.
Dans ce cas, il s'agit d'une conception propre car la variable doit être en lecture seule, et non en écriture seule, et de plus, elle est la même dans toute l'application :
function getNameFromUrl(): string{return isset($_GET['nom'])? htmlspecialchars($_GET['nom']): '';}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: ... | fr