Superglobale

Définition, exemples et bonnes pratiques

À retenir

  • Elles sont toujours accessibles, peu importe l'endroit du code.
  • Elles commencent presque toutes par $_ (sauf $GLOBALS).
  • Elles sont créées et remplies automatiquement par PHP.
  • Elles servent de pont entre le navigateur de l'internaute et le serveur.

En PHP, une superglobale est une variable spéciale qui est automatiquement disponible dans toutes les parties de votre code. Imaginez une boîte à outils magique qui se téléporte avec vous : que vous soyez dans le corps principal du programme ou à l'intérieur d'une fonction isolée, vous pouvez accéder à son contenu sans avoir besoin de la déclarer spécifiquement à chaque fois.

Étymologie

Le terme est formé du préfixe latin super- (signifiant « au-dessus » ou « au-delà ») et de l'adjectif global. En programmation, cela désigne une variable dont la portée dépasse celle des variables « globales » classiques, car elle n'a pas besoin du mot-clé global pour être utilisée au sein d'une fonction.

Exemples d'usage

  • $_GET : contient les données envoyées dans l'URL d'une page.
  • $_POST : contient les informations envoyées via un formulaire HTML.
  • $_SESSION : stocke les informations d'un utilisateur (comme son nom de connexion) pendant toute sa navigation.
  • $_SERVER : regroupe des informations sur l'environnement d'exécution (adresse IP du visiteur, nom du script, etc.).

Cas d'usage

Les superglobales sont indispensables dans le développement web pour récupérer les interactions des utilisateurs, gérer la sécurité, manipuler les cookies ou conserver l'état d'une connexion entre plusieurs pages d'un site.

Bonnes pratiques

La règle d'or est de ne jamais faire confiance aux données contenues dans les superglobales (surtout $_GET et $_POST). Comme elles proviennent de l'utilisateur, elles peuvent être malveillantes. Il faut systématiquement les nettoyer (filtrage) et les vérifier avant de les utiliser, par exemple pour éviter des failles de sécurité comme les injections SQL ou XSS.

Synonymes

variable prédéfinie variable globale automatique

Antonymes

variable locale variable privée

Conseil

Quand vous débutez, apprenez d'abord à manipuler $_GET et $_POST. C'est la base pour rendre un site interactif. Gardez toujours en tête qu'une superglobale est comme une porte ouverte sur l'extérieur : vérifiez toujours qui entre avant de lui donner les clés de votre base de données !

Questions fréquentes

Puis-je créer mes propres superglobales ?

Non, les superglobales sont définies par le langage PHP lui-même. Cependant, vous pouvez ajouter des données à l'intérieur de certaines d'entre elles, comme $_SESSION.

Quelle est la différence entre $GLOBALS et les autres ?

$GLOBALS est la seule superglobale qui ne commence pas par un underscore. Elle contient toutes les variables globales définies dans le script.

Pourquoi sont-elles écrites en majuscules ?

C'est une convention de nommage en PHP pour signaler qu'il s'agit de variables système prédéfinies et importantes.