Vaya al Contenido
Saltar menú
SuperHispano
+34 012 345 678
info@example.com
España 03:19:18 sábado 07/02/26
Saltar menú
Saltar menú

PHP $GLOBALS

Internet > PHP > Superglobals

$GLOBALS en PHP


PHP cuenta con una serie de variables superglobales que permiten acceder a datos en cualquier parte del script. Una de estas variables es $GLOBALS, un arreglo asociativo que contiene referencias a todas las variables globales del script. En este artículo, veremos cómo usar $GLOBALS y algunos ejemplos prácticos de su funcionamiento.

¿Qué es $GLOBALS?


$GLOBALS es un arreglo asociativo que contiene referencias a todas las variables definidas en el ámbito global de un script. Esto significa que puedes acceder a cualquier variable global desde cualquier parte del código, incluyendo dentro de funciones y métodos, sin necesidad de usar la palabra clave global.

Características principales de $GLOBALS: Accesibilidad global: Está disponible en todos los ámbitos del script, lo que facilita el acceso a variables globales desde funciones o métodos. Arreglo asociativo: Los nombres de las variables globales son las claves del arreglo $GLOBALS, y sus valores son los contenidos de esas variables.

Ejemplo básico


Veamos un ejemplo sencillo de cómo acceder a variables globales usando $GLOBALS.

<?php
$mensaje = "Hola Mundo";
$numero = 42;

echo $GLOBALS["mensaje"] . "\n"; // Imprime: Hola Mundo
echo $GLOBALS["numero"] . "\n"; // Imprime: 42
?>


Explicación:


$GLOBALS["mensaje"] y $GLOBALS["numero"] permiten acceder a las variables globales $mensaje y $numero desde cualquier parte del código.

Acceso a Variables Globales desde una Función


Si defines una variable en el ámbito global y otra con el mismo nombre dentro de una función, puedes usar $GLOBALS para diferenciar entre ambas.

<?php
$texto = "Variable Global";

function mostrarTexto() {
$texto = "Variable Local";
echo "Variable Global: " . $GLOBALS['texto'] . "\n";
echo "Variable Local: " . $texto . "\n";
}

mostrarTexto();
?>


Salida esperada:


Variable Global: Variable Global
Variable Local: Variable Local


Explicación:


En este caso, $GLOBALS['texto'] se refiere a la variable global $texto, mientras que $texto dentro de la función es una variable local. Ambas variables tienen el mismo nombre, pero pertenecen a contextos diferentes.

Cambios en PHP 8.1.0


Antes de PHP 8.1.0, era posible modificar variables globales directamente a través de una copia del arreglo $GLOBALS. Sin embargo, a partir de la versión 8.1.0, $GLOBALS es de solo lectura, lo que significa que no puedes modificar variables globales usando una copia de este arreglo.

Ejemplo antes de PHP 8.1.0


En versiones anteriores a PHP 8.1.0, se podía modificar una variable global a través de una copia de $GLOBALS.

<?php
$a = 10;
$globals_copia = $GLOBALS;
$globals_copia['a'] = 20;
echo $a; // Imprime: 20 en versiones anteriores a PHP 8.1.0
?>


Explicación:


En este ejemplo, se crea una copia de $GLOBALS llamada $globals_copia. Modificando $globals_copia['a'], también se cambia el valor de $a en el ámbito global.

Ejemplo después de PHP 8.1.0


A partir de PHP 8.1.0, $GLOBALS es un arreglo de solo lectura, lo que significa que modificar una copia de $GLOBALS ya no afecta las variables globales.

<?php
$a = 10;
$globals_copia = $GLOBALS;
$globals_copia['a'] = 20;
echo $a; // Imprime: 10 en PHP 8.1.0 y versiones posteriores
?>


Explicación:


Aunque se intenta cambiar el valor de $a a través de una copia de $GLOBALS, el valor original de $a no cambia. $GLOBALS ahora es de solo lectura, por lo que no es posible modificar variables globales de esta manera.

Consideraciones de Uso


Evitar el uso excesivo de $GLOBALS: Aunque $GLOBALS es útil para acceder a variables globales, su uso excesivo puede hacer que el código sea difícil de seguir. Se recomienda limitar su uso cuando sea absolutamente necesario.
Mejor alternativa: parámetros y retornos: En lugar de depender de $GLOBALS para pasar datos entre funciones, es más limpio pasar variables como parámetros y usar valores de retorno cuando sea posible.

Conclusión


$GLOBALS es una herramienta poderosa en PHP que permite acceder a variables globales desde cualquier parte del script. Sin embargo, su uso debe manejarse con cuidado para evitar confusión en el código.
Además, a partir de PHP 8.1.0, $GLOBALS es de solo lectura, lo que asegura que las variables globales no puedan modificarse inadvertidamente a través de una copia de este arreglo.
+34 012 345 678
+34 012 345 678 (fax)
example@superhispano.com
Creado con WebSite X5
Regreso al contenido