Les Superglobales

Vous êtes ici : >> PHP / Les Superglobales
Temps d'étude : 30 min. Niveau : Moyen.
Tags : Les Superglobales
Fichier(s) utile(s) pour ce cours : /

Les Superglobales

Les Superglobales sont des variables array, internes et prédéfinies par PHP, qui sont toujours disponibles, quel que soit le contexte.

Pour rappel, une variable array permet de conserver un ensemble de valeurs : chapitre sur les array.

Lorsqu'on parle de disponibilité, on exprime le fait que les superglobales sont à la fois disponibles dans l'espace global (espace par défaut de php) mais aussi dans l'espace local (dans une fonction).

Pour utiliser une superglobale dans une fonction, il ne sera donc pas nécessaire d'effectuer un passage d'argument ou utiliser le mot-clé global ;

Les superglobales sont reconnaissables car elles s'inscrivent TOUJOURS en majuscule et commence toutes obligatoirement par un underscore "_" (sauf $GLOBALS).

A quoi servent les superglobales en PHP ?

Superglobale Description Exemple d'utilisation
$GLOBALS Contient toutes les variables disponibles dans un contexte global -
$_SERVER Contient toutes les informations fournies par le serveur web Pratique pour connaitre le chemin du site, d'un dossier, etc.
$_GET Contient les informations fournies en paramètre au script via la méthode GET par l'URL et le protocole HTTP. Utile pour véhiculer des informations d'une page à l'autre.
$_POST Contient les informations fournies par un formulaire via la méthode POST du protocole HTTP. Utile pour récupérer les saisies postées dans un formulaire par un internaute.
$_FILES Contient les informations liées à l'upload d'un (ou plusieurs) fichier(s) par un formulaire (fonctionne en complément de la superglobale $_POST). Utile pour récupérer le(s) fichier(s) uplaodé(s) dans un formulaire par un internaute.
$_COOKIE Contient les informations fournies par les cookies via le protocole HTTP. Utile pour conserver des informations sur un internaute.
$_SESSION Contient les informations de la session en cours. Utile pour maintenir une connexion avec un internaute sur un site web
$_REQUEST Contient les variables fournies au script (peu importe la méthode utilisée). Utile pour récupérer des informations sans savoir précisément d'où elles proviennent
$_ENV Contient les variables fournies par l'environnement. -

Très important : Toutes les superglobales sont ARRAY car elles contiennent plusieurs informations.

Ce qui veut dire que nous pourrons utiliser un print_r pour afficher leur contenu

Superglobales $GLOBALS, $_ENV, $_REQUEST

Quelques tests :

entrainement.php
		<?php	
		echo '
'; print_r($GLOBALS); echo '
'; echo '
'; print_r($_ENV); echo '
'; echo '
'; print_r($_REQUEST); echo '
';
Comme vous pouvez le constater au vue du résultat, $GLOBALS contient les autres superglobales.

$GLOBALS se contient elle même, c'est la raison pour laquelle vous voyez écrit *RECURSION* lors de l'affichage.

Superglobale $_SERVER

$_SERVER est une variable très pratique puisqu'elle nous permet d'obtenir des informations sur le serveur :

entrainement.php
		<?php	
		echo '
'; print_r($_SERVER); echo '
';
$_SERVER est un array (comme toutes les superglobales).

Résultat

explication PHP


Même principe que pour un tableau array classique, si nous souhaitons obtenir une information en particulier, il suffit de passer par la clé (indice) du tableau :

entrainement.php
		<?php	
		echo $_SERVER['DOCUMENT_ROOT']; 
La clé DOCUMENT_ROOT de la superglobale $_SERVER permet d'avoir accès au chemin dans lequel nous travaillons actuellement. Ce qui peut être très pratique dans le cadre d'un développement.

Les autres superglobales n'étant pas détaillées dans cette page possèdent leurs propres exemples dans les chapitres suivants.