Vaya al Contenido

PHP $GLOBALS - SuperHispano

Saltar menú
SuperHispano
+34 012 345 678
info@example.com
España 03:19:18 sábado 07/02/26
Saltar menú
Saltar menú
Saltar menú
Taller > 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
Icono de la aplicación
SuperHispano Instale esta aplicación en su pantalla de inicio para una mejor experiencia
Toque Botón de instalación en iOS y luego "Agregar a su pantalla"