Variable globale

Définition, exemples et bonnes pratiques

À retenir

  • Visible et modifiable partout dans le programme.
  • Existe durant toute la durée de l'exécution du logiciel.
  • Risque élevé de collisions de noms et de bugs imprévisibles.

Une variable globale est une donnée stockée en mémoire qui est accessible depuis n'importe quelle partie d'un programme informatique. Imaginez un grand tableau d'affichage placé dans le hall d'une entreprise : tout le monde peut le lire et y écrire, contrairement à un carnet de notes privé (variable locale) que seul un employé possède dans son bureau.

Étymologie

Le terme vient du latin variabilis (qui peut changer) et de globus (la sphère, le monde entier). En programmation, le terme « global » indique que la portée de la variable s'étend à l'intégralité de l'univers du code source, sans frontières entre les fonctions ou les modules.

Exemples d'usage

  • Une variable NOM_DU_SITE définie au début d'un script et utilisée dans l'en-tête, le corps et le pied de page.
  • Un compteur de score dans un jeu vidéo simple, accessible à la fois par la fonction qui gère les collisions et celle qui gère l'affichage à l'écran.
  • Un paramètre de configuration comme LANGUE_UTILISATEUR partagé par tous les composants d'un logiciel.

Cas d'usage

On les utilise principalement pour définir des réglages généraux ou des constantes de configuration qui ne changeront pas au cours de l'exécution. Elles sont aussi courantes dans les petits scripts ou pour l'apprentissage de la programmation avant d'aborder des structures plus complexes.

Bonnes pratiques

Il est fortement recommandé de limiter leur usage. Puisque n'importe quelle partie du code peut les modifier, cela crée souvent des bugs difficiles à tracer (effets de bord). Si une valeur ne doit pas changer, il vaut mieux utiliser une constante. Si elle doit changer, privilégiez le passage de paramètres entre fonctions.

Synonymes

variable universelle variable publique

Antonymes

variable locale variable privée

Conseil

Si vous débutez, utilisez-les pour comprendre comment circulent les données, mais apprenez rapidement à vous en passer. Un bon réflexe est de se demander : « Cette fonction a-t-elle vraiment besoin d'accéder à cette donnée globale, ou puis-je lui envoyer l'information directement ? »

Questions fréquentes

Est-ce qu'une variable globale consomme plus de mémoire ?

Oui, car elle reste en mémoire pendant toute la durée de vie du programme, contrairement à une variable locale qui est supprimée dès que sa fonction est terminée.

Peut-on transformer une variable locale en globale ?

Dans certains langages comme Python ou PHP, on utilise un mot-clé spécifique (comme <code>global</code>) pour indiquer qu'on souhaite modifier une variable globale depuis l'intérieur d'une fonction.

Par quoi remplacer les variables globales ?

On utilise généralement l'encapsulation dans des objets, ou on passe les données nécessaires directement en arguments aux fonctions qui en ont besoin.