5.3 Les variables
5 Référence du langage
Manuel PHP
. Essentiel ->Variables pré-définies . Portée des variables . Les variables dynamiques . Variables externes à PHP
|
5.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 :
|