/
Variables

Variables globales en PHP

22. 08. 2019

Las variables globales están disponibles en cualquier momento en cualquier parte de la aplicación y no necesitan ser pasadas.

Atención: Una aplicación bien diseñada no debería usar variables globales porque violan el principio de encapsulación y pueden causar errores difíciles de detectar si se manejan sin cuidado.

Ejemplo de uso:

$a = 1;
$b = 2;
function suma(): void
{
global $a, $b;
$b = $a + $b;
}
suma();
echo $b; // imprime el número 3 porque la variable $b es global

Nótese que hemos obtenido las variables $a y $b fuera de su contexto natural. Este comportamiento se denomina "mágico" porque si otra función anula las variables actualmente en uso, la aplicación experimentará una condición inesperada.

De forma correcta, la aplicación debería encapsular y pasar las variables cada vez:

$a = 1;
$b = 2;
function suma(int $a, int $b): int
{
return $a + $b;
}
echo suma($a, $b); // imprime 3

Gracias a esto, podemos llamar a la función dinámicamente con diferentes parámetros de entrada y su salida dependerá sólo de las entradas, no del entorno.

Obtención de parámetros de entrada desde la URL

Tal vez el único uso razonable de las variables globales sea en el análisis de la entrada del usuario, en cuyo caso estamos hablando de variables superglobales.

En este caso, es un diseño limpio porque la variable debe ser de sólo lectura, no de sólo escritura, y además es la misma en toda la aplicación:

function getNameFromUrl(): string
{
return isset($_GET['nombre'])
? htmlspecialchars($_GET['nombre'])
: '';
}
echo getNameFromUrl();

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
4.