Les variables superglobales.
Ces variables sont prédéfinies à PHP et sont destinées à stocker des informations bien spécifiques. Elles se présentent généralement sous la forme d'un tableau associatif à une ou deux dimensions. Elles sont disponibles dans tous les contextes d'exécution (fonctions ou méthodes).
Voici une liste non-exhaustive (comprenant les cas d'utilisation les plus courants) :
Variables de serveur : $_SERVER.
Elle contient des informations sur le serveur (nom, IP, logiciels installés…)
Par exemple pour extraire l'URL de la page courante :
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
Variables d'environnement : $_ENV.
Elle contient des informations sur l'environnement d'exécution du script PHP (c'est-à-dire sur le serveur). Elle est donc directement liée au serveur et à son système.
Prenons comme exemple, le prénom 'Paul' :
<?php
echo 'Mon nom d\'utilisateur est ' .$_ENV["USER"] . '!';
En imaginant que l'utilisateur 'Paul' exécute ce script, on aura alors :
Cookies : $_COOKIE.
Elle stocke les informations sur les cookies envoyés aux clients.
Un petit exemple pour illustre cela :
<?php
echo 'Bonjour ' . htmlspecialchars($_COOKIE["name"]) . '!';
On suppose que le cookie "name" a été défini précédemment, (on prendra Paul encore une fois)
L'exemple ci-dessus va afficher alors :
GET variables : $_GET.
Elle stocke les valeurs des arguments passés par URL. Ses clés sont donc par conséquent variables.
Pour illustrer ces propos, imaginons que l'utilisateur ai entrée l'URL suivant : "http://example.com/?name=Paul"
<?php
echo 'Bonjour ' . htmlspecialchars($_GET["name"]) . '!';
L'exemple ci-dessus va afficher alors :
POST variables : $_POST.
Elle stocke les valeurs des informations passées par formulaire avec la méthode="post". Ses clés sont donc par conséquent variables.
L'exemple ci dessous est un formulaire comportant un champ de saisie et un bouton de soumission.
Quand un utilisateur soumet des données en cliquant sur "Soumettre", les données du formulaire sont envoyées dans un fichier spécial dans l'attribut d'action de la balise codice_1. 
Puis, on peut utiliser codice_2 pour recueillir la valeur du champ de saisie.
Variables de requête : $_REQUEST.
Un tableau associatif constitué du contenu des variables codice_3, codice_2, codice_5.
L'exemple ci dessous est un formulaire comportant un champ de saisie et un bouton de soumission.
Quand un utilisateur soumet des données en cliquant sur "Soumettre", les données du formulaire sont envoyées dans un fichier spécial dans l'attribut d'action de la balise codice_1. 
Puis, on peut utiliser codice_7 pour recueillir la valeur du champ de saisie.
Variable de téléchargement : $_FILES.
Elle stocke les informations sur un fichier envoyé via HTTP par le client par un formulaire.
Variables de session : $_SESSION.
Elle contient les valeurs de la session en cours pour le client.
Variables globales : $GLOBALS.
Elle stocke les variables globales de la page. Ses clés sont donc variables.
Ci-dessous, un exemple d'utilisation de la variable codice_8.
Lorsqu'on exécute ce code, on obtient "100" (=> résultat de la variable 'z' + 'y').
filter_input().
Une bonne pratique consiste à filtrer les contenus des variables superglobales, qui sont vulnérables aux .
Pour des raisons de sécurité, on évitera donc d'appeler directement les tableaux des variables superglobales comme dans les paragraphes précédents, pour leur préférer la syntaxe codice_9 :
<?php
echo filter_input(INPUT_GET, 'password'); // bien
echo $_GET['password']; // pas bien
Ne pas confondre avec la fonction filter_var() qui permet d'appliquer des validations ou nettoyages de certaines données (ex : email, URL, adresse IP, booléen...).