$GLOBALS
(PHP 4, PHP 5, PHP 7, PHP 8)
$GLOBALS — Hace referencia a todas las variables disponibles en un contexto global
Descripción
Un array asociativo que contiene referencias a todas las variables
globales actualmente definidas en el contexto de ejecución global del
script. Los nombres de las variables son los índices del array.
Ejemplos
Ejemplo #1 Ejemplo con $GLOBALS
<?php
function test()
{
$foo = "variable local";
echo '$foo en el contexto global : ' . $GLOBALS["foo"] . "\n";
echo '$foo en el contexto actual : ' . $foo . "\n";
}
$foo = "Contenido de ejemplo";
test();
?>
Resultado del ejemplo anterior es similar a:
$foo en el contexto global : Contenido de ejemplo
$foo en el contexto actual : variable local
Advertencia
A partir de PHP 8.1.0, el acceso en escritura al array entero
$GLOBALS ya no es soportado:
Ejemplo #2 Escribir en el array entero $GLOBALS resultará en un error.
<?php
// Genera un error durante la compilación:
$GLOBALS = [];
$GLOBALS += [];
$GLOBALS =& $x;
$x =& $GLOBALS;
unset($GLOBALS);
array_pop($GLOBALS);
// ...y cualquier otra operación de escritura/lectura-escritura en $GLOBALS
?>
Notas
Nota:
Esto es una 'superglobal', o variable global automática. Esto significa simplemente que esta variable
está disponible en todos los contextos del script. No es necesario hacer global $variable;
para acceder a ella en las funciones o los métodos.
Nota:
Disponibilidad de las variables
A diferencia de todas las demás
superglobales,
$GLOBALS siempre ha estado disponible en PHP.
Nota:
A partir de PHP 8.1.0, $GLOBALS es ahora una
copia de solo lectura del array de símbolos
global.
Es decir, las variables globales no pueden ser modificadas a través de su copia.
Anteriormente, el array $GLOBALS estaba excluido del
comportamiento habitual por valor de los arrays de PHP y las variables globales
podían ser modificadas a través de su copia.