Essentiel
<<<
Variables pré-définies Portée des variables
>>>

4.3 Les variables
4 Référence du langage
 Manuel PHP

Essentiel
->Variables pré-définies
Portée des variables
Les variables dynamiques
Variables externes à PHP

4.3.2 Variables pré-définies

PHP fourni un grand nombre de variables pré-définies. Cependant, beaucoup de ces variables ne peuvent pas être présentées ici, car elles dépendent du serveur sur lequel elles tournent, de la version du serveur et de la configuration du serveur ou encore d'autres facteurs. Certaines de ces variables ne seront pas accessibles lorsque PHP fonctionne en exécutable.

Attention

Depuis la version PHP 4.2.0, la valeur par défaut de la directive PHP register_globals est off . Ceci est une évolution majeure de PHP. Avoir la directive register_globals à off affecte les variables pré-définies du contexte globale. Par exemple, pour lire DOCUMENT_ROOT vous devez utiliser $_SERVER['DOCUMENT_ROOT'] au lieu de $DOCUMENT_ROOT ou bien, il faut lire $_GET['id'] dans l'URL http://www.example.com/test.php?id=3 au lieu de $id ou encore $_ENV['HOME'] au lieu de $HOME .

Pour des informations liées à cette évolution, lisez la documentation de la directive register_globals , le chapitre sur la sécurité, à propos de l' Utilisation des variables superglobales , ainsi que les annonces de PHP 4.1.0 et 4.2.0 .

L'utilisation des variables pré-définies de PHP, comme les tableaux superglobaux , est recommandé.

Depuis la version 4.1.0, PHP fournit un jeu de tableaux pré-définis, contenant les variables du serveur (si possible), les variables d'environnement et celle d'entrées. Ces nouveaux tableaux sont un peu particuliers, car ils sont automatiquement globaux : ils sont automatiquement disponibles dans tous les environnements d'exécution, sans avoir à utiliser le mot réservé global . Pour cette raison, ils sont dits 'auto-globaux' ou bien encore 'superglobaux' (il n'y a pas de mécanisme PHP pour créer de telles variables. Les superglobales sont listées ci-dessous. Cependant, pour connaître le détails de leur contenu et une présentation approfondie sur les variables pré-définies PHP et leur nature, reportez-vous à la section variables pré-définies . De plus, vous noterez que les anciennes variables pré-définies ( $HTTP_*_VARS ) existent toujours. Depuis PHP 5.0.0, les tableaux prédéfinis PHP peuvent être désactivés avec l'option de configuration register_long_arrays .

Note
Variables variables

Les superglobales ne peuvent pas être utilisées comme variables dynamiques dans les fonctions ou les méthodes des classes.

Note

Même si les superglobales et HTTP_*_VARS peuvent exister en même temps, ils ne sont pas identiques, donc, le changement d'une ne changera pas l'autre.

Si certaines variables de variables_order ne sont pas définies, leur tableau pré-défini PHP correspondant est laissé vide.

Sommaire :

<< Variables pré-définies >>
Essentiel Les variables Portée des variables