Superglobal

Définition, exemples et bonnes pratiques

À retenir

  • Elles sont disponibles partout dans le code sans déclaration préalable.
  • Elles commencent presque toutes par un caractère de soulignement (ex: $_GET).
  • Elles sont les piliers de l'interactivité en PHP.

En programmation PHP, une variable superglobale est une variable spéciale qui est automatiquement accessible dans tout votre code, sans exception. Imaginez une boîte à outils magique qui se trouve toujours à portée de main, que vous soyez dans une fonction, une classe ou le fichier principal, sans jamais avoir besoin de la transporter explicitement.

Étymologie

Le terme est un néologisme informatique formé du préfixe latin super (« au-dessus ») et de global. Il a été introduit avec PHP 4.1.0 pour désigner des variables dont la portée (le « scope ») surpasse celle des variables globales classiques, lesquelles nécessitent parfois une déclaration interne pour être utilisées dans une fonction.

Exemples d'usage

  • $_GET : permet de lire les informations passées dans l'adresse URL d'un site (ex: ?id=12).
  • $_POST : contient les données envoyées via un formulaire de contact ou de connexion.
  • $_SESSION : sert à conserver les informations d'un utilisateur (comme son panier d'achat) tout au long de sa visite.

Cas d'usage

On utilise les superglobales principalement pour faire communiquer le navigateur de l'utilisateur avec le serveur web. Elles interviennent dès qu'il s'agit de récupérer des cookies, de gérer des téléchargements de fichiers ($_FILES) ou d'obtenir des détails techniques sur le serveur ($_SERVER).

Bonnes pratiques

La règle d'or est la méfiance absolue. Comme ces variables contiennent souvent des données venant de l'extérieur, elles peuvent être manipulées par des attaquants. Il ne faut jamais utiliser leur contenu directement (dans une base de données ou pour un affichage) sans l'avoir préalablement nettoyé et vérifié.

Synonymes

variable prédéfinie variable globale automatique

Antonymes

variable locale variable privée

Conseil

Quand vous débutez, familiarisez-vous avec la liste officielle des superglobales PHP. Pour manipuler leurs données en toute sécurité, intéressez-vous à la fonction filter_input() qui est faite pour cela.

Questions fréquentes

Quelle est la différence avec une variable globale ?

Une variable globale classique doit être appelée avec le mot-clé 'global' à l'intérieur d'une fonction pour être utilisée, alors qu'une superglobale est accessible d'office sans effort.

Puis-je créer mes propres superglobales ?

Non, les superglobales sont réservées au langage PHP lui-même. Un développeur ne peut pas déclarer ses propres variables avec ce statut particulier.