PHP définit et intialise automatiquement certaines
variables en fonction du contexte d'utilisation. Ces valeurs sont
généralement stockées dans des tableaux associatifs (ie des tables de
hachage).
Le tableau $GLOBALS
Une alternative à l'utilisation d'un mot-clé global
est l'utilisation du tableau $GLOBALS,
automatiquement créé et mis à jour par PHP. Ce tableau contient une
référence sur chacune des variable disponibles dans l'environnement
global d'exécution. Les clés de ce tableau sont les noms des
variables globales, et les valeurs associées sont les valeurs des
variables globales.
Nous pouvons reprendre l'exemple sur la portée des variables
de la façon suivante :
Les superglobales
Vous remarquez que le tableau $GLOBALS
n'a pas besoin d'être déclaré avec le mot clé
global pour être utilisé dans une fonction.
Il s'agit d'une variable superglobale. Les variables superglobales
sont accessibles dans tout le script y compris les fonctions (ie elles
existent dans tous les contextes).
PHP fournit différentes variables prédéfinies superglobales :
- des variables concernant le serveur web, ou liées à
l'environnement d'exécution du script
- des variables transmises par le protocole HTTP : zones de formulaires,
cookies, paramètres d'URL, etc.
- des variables concernant la session attachée à l'utilisateur.
Superglobale URL
Ce sont les variables incluses dans l'URL de la page PHP. Ces
variables peuvent provenir d'un formulaire utilisant la méthode GET,
ou peuvent être passées directement par le développeur dans l'URL
d'appel de la page. Les URL avec variables (ou paramètres) sont de
la forme : lapage.php?Nom=piat&Prenom=françois
Toutes les fois qu'un paramètre est trouvé dans l'URL de la page,
PHP va le stocker dans un tableau associatif superglobal appelé $_GET.
Superglobales de formulaire
Quand un formulaire HTML utilise la méthode POST pour l'envoi des
valeurs saisies au serveur (ie à un script PHP), PHP génère
automatiquement un tableau associatif superglobal appelé $_POST et contenant les zones du
formulaire.
Superglobale cookie
PHP génère automatiquement un tableau associatif superglobal appelé
$_COOKIE et contenant les
cookies.
Le code suivant pose un cookie appelé Nom et ayant la valeur piat :
setcookie('Nom','piat')
.
On retrouvera la valeur du cookie Nom dans $_COOKIE['Nom'].
Superglobales du serveur
On peut obtenir diverses informations sur l'environnement du serveur
dans le tableau superglobal $_ENV.
Des informations sur le serveur lui-même sont disponibles dans le
tableau superglobal $_SERVER.
Remarque : Parmi les variables serveurs, la plus utilisée est sans
doute PHP_SELF qui représente le nom de
la page elle-même.