$GLOBALS
(PHP 4, PHP 5, PHP 7, PHP 8)
$GLOBALS — Référence toutes les variables disponibles dans un contexte global
Description
Un tableau associatif contenant les références sur toutes les variables
globales actuellement définies dans le contexte d'exécution global du
script. Les noms des variables sont les index du tableau.
Exemples
Exemple #1 Exemple avec $GLOBALS
<?php
function test()
{
$foo = "variable locale";
echo '$foo dans le contexte global : ' . $GLOBALS["foo"] . "\n";
echo '$foo dans le contexte courant : ' . $foo . "\n";
}
$foo = "Exemple de contenu";
test();
?>
Résultat de l'exemple ci-dessus est similaire à :
$foo dans le contexte global : Exemple de contenu
$foo dans le contexte courant : variable locale
Avertissement
À partir de PHP 8.1.0, l'accès en écriture au tableau entier
$GLOBALS n'est désormais plus supporté :
Exemple #2 Écrire au tableau entier $GLOBALS résultera en une erreur.
<?php
// Génère une erreur lors de la compilation :
$GLOBALS = [];
$GLOBALS += [];
$GLOBALS =& $x;
$x =& $GLOBALS;
unset($GLOBALS);
array_pop($GLOBALS);
// ...et toute autre opération d'écriture/lecture-écriture sur $GLOBALS
?>
Notes
Note:
Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable
est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable;
pour y accéder dans les fonctions ou les méthodes.
Note:
Disponibilité des variables
Contrairement à toutes les autres
superglobales,
$GLOBALS a toujours été disponible en PHP.
Note:
À partir de PHP 8.1.0, $GLOBALS est désormais une
copie en lecture seule du tableau de symbole
global.
C'est-à-dire que les variables globales ne peuvent pas être modifiées via sa copie.
Auparavant, le tableau $GLOBALS était exclu du
comportement usuel par-valeur des tableaux PHP et les variables globales
pouvaient être modifiées via sa copie.