Comprender las superglobales de PHP y la variable $_GLOBALS
PHP es un lenguaje de scripting del lado del servidor popular utilizado para el desarrollo web. Proporciona varias superglobales, que son variables integradas que siempre son accesibles en todos los ámbitos de un script de PHP. Una de estas superglobales es la variable $GLOBALS, que contiene una referencia a todas las variables globales definidas en un script de PHP.
En este artículo, profundizaremos en la variable $GLOBALS y sus usos en la programación PHP.
¿Qué son las superglobales de PHP?
Las superglobales en PHP son variables especiales que están disponibles en todos los ámbitos de un script de PHP. Esto significa que pueden accederse desde cualquier función, clase o archivo, sin necesidad de declararlas como variables globales.
Las siguientes son las superglobales en PHP:
$_GET: contiene los datos pasados al script a través de la cadena de consulta de la URL.$_POST: contiene los datos pasados al script mediante el envío de un formulario.$_COOKIE: contiene los datos pasados al script a través de cookies.$_SESSION: contiene los datos almacenados en la sesión de un usuario.$_REQUEST: contiene los datos pasados al script a través de la cadena de consulta de la URL, el envío de un formulario o las cookies.$_SERVER: contiene información sobre el servidor y el entorno.$_ENV: contiene información sobre el entorno.$GLOBALS: contiene una referencia a todas las variables globales definidas en un script de PHP.
¿Qué es la variable $GLOBALS en PHP?
La variable $GLOBALS es una superglobal que contiene una referencia a todas las variables globales definidas en un script de PHP. Esto significa que, con la variable $GLOBALS, puedes acceder a cualquier variable global desde cualquier parte de tu script.
Aquí tienes un ejemplo de cómo se puede usar la variable $GLOBALS para acceder a una variable global:
Ejemplo de PHP de cómo se puede usar la variable $GLOBALS para acceder a una variable global
<?php
$x = 10;
$y = 20;
function add() {
global $x, $y;
return $x + $y;
}
echo add(); // 30
echo $GLOBALS['x']; // 10
echo $GLOBALS['y']; // 20
?>En este ejemplo, la función add() utiliza la palabra clave global para acceder a las variables $x y $y. Sin embargo, en lugar de usar la palabra clave global, también puedes acceder a estas variables a través de la variable $GLOBALS.
Cómo usar la variable $GLOBALS en PHP
La variable $GLOBALS es una herramienta poderosa en la programación PHP que se puede usar para acceder a variables globales desde cualquier parte de tu script. Aquí hay algunas formas de usar la variable $GLOBALS:
Acceder a variables globales
Como vimos en el ejemplo anterior, puedes usar la variable $GLOBALS para acceder a cualquier variable global definida en tu script. Aquí hay otro ejemplo:
PHP para acceder a cualquier variable global definida en tu script
<?php
$name = "John Doe";
function greeting() {
global $name;
echo "Hello, " . $name;
}
greeting(); // Hello, John Doe
echo $GLOBALS['name']; // John Doe
?>Modificar variables globales
La variable $GLOBALS también se puede usar para modificar variables globales. Esto puede ser útil si necesitas realizar cambios en una variable global desde dentro de una función o clase.
Aquí tienes un ejemplo:
PHP para modificar variables globales
<?php
$counter = 0;
function increment() {
global $counter;
$counter++;
}
increment();
echo $counter; // 1
echo "\n";
$GLOBALS['counter'] = 10;
echo $counter; // 10
?>En este ejemplo, la función increment() incrementa el valor de la variable $counter. Sin embargo, también puedes modificar el valor de la variable $counter directamente a través de la variable $GLOBALS.
Pasar variables entre funciones y clases
La variable $GLOBALS también se puede usar para pasar variables entre funciones y clases. Esto puede ser útil si necesitas compartir datos entre diferentes partes de tu script.
Aquí tienes un ejemplo:
PHP para pasar variables globales entre funciones y clases
<?php
$data = array("name" => "John Doe", "age" => 30);
function display_data() {
global $data;
print_r($data);
}
class User {
function show_data() {
global $data;
print_r($data);
}
}
display_data(); // Array ( [name] => John Doe [age] => 30 )
$user = new User();
$user->show_data(); // Array ( [name] => John Doe [age] => 30 )
$GLOBALS['data']['email'] = "[email protected]";
display_data(); // Array ( [name] => John Doe [age] => 30 [email] => [email protected] )
$user->show_data(); // Array ( [name] => John Doe [age] => 30 [email] => [email protected] )
?>En este ejemplo, la función display_data() y la clase User acceden a la variable $data a través de la variable $GLOBALS. Esto te permite pasar la variable $data entre las diferentes partes de tu script.
Conclusión
La variable $GLOBALS es una herramienta poderosa en la programación PHP que proporciona acceso a todas las variables globales definidas en un script de PHP. Ya sea que estés accediendo, modificando o pasando variables entre funciones y clases, la variable $GLOBALS es una herramienta versátil que puede ayudarte a escribir un mejor código PHP.
Nota sobre las mejores prácticas: Aunque $GLOBALS es útil, generalmente se desaconseja depender en exceso de variables globales en el desarrollo moderno de PHP. Considera usar inyección de dependencias, clases o pasar variables como argumentos de función para una mejor mantenibilidad, encapsulamiento y testabilidad.
Práctica
En PHP, ¿cuáles son los tipos de variables disponibles en un ámbito global?