PHP proporciona una gran cantidad de variables predefinidas a
cualquier script que se ejecute. De todas formas, muchas de esas
variables no pueden estar completamente documentadas ya que
dependen de sobre qué servidor se esté ejecutando, la
versión y configuración de dicho servidor, y otros
factores. Algunas de estas variables no estarán disponibles
cuando se ejecute PHP desde la línea de
comandos.Para obtener una lista de estas variables podeis
consultar la sección Variables predefinidas
reservadas.
Aviso
A partir de PHP 4.2.0, el valor por defecto de la directiva PHP
register_globals es
off (desactivada). Este es un cambio
importante en PHP. Teniendo register_globals
off afecta el conjunto de variables
predefinidas disponibles en el sistema. Por ejemplo, para obtener
DOCUMENT_ROOT se usará
$_SERVER['DOCUMENT_ROOT'] en vez de
$DOCUMENT_ROOT ó $_GET['id']
de la URL http://www.example.com/test.php?id=3
en vez de $id ó
$_ENV['HOME'] en vez de
$HOME.
Para más información sobre este cambio, podeis consultar el
apartado de configuración sobre register_globals, el
capítulo sobre seguridad Usando "Register Globals"
, asi como los anuncios de lanzamiento de PHP 4.1.0 y 4.2.0
El uso de las variables reservadas predefinidas en PHP, como matrices
superglobales es recomendable.
A partir de PHP 4.1.0, PHP ofrece un conjunto adicional de matrices
predefinidas, conteniendo variables del servidor web, el entorno y
entradas del usuario. Estas nuevas matrices son un poco especiales
porque son automáticamente globales. Por esta razón, son conocidas a
menudo como "autoglobales" ó "superglobales". Las superglobales se
mencionan más abajo; sin embargo para una lista de sus contenidos y
más información sobre variables predefinidas en PHP, consultar la
sección Variables predefinidas
reservadas. Podreis ver como las variables predefinidas
antiguas ($HTTP_*_VARS) todavía existen.
A partir de PHP 5.0.0, las
matrices de tipo "long" de variables
predefinidas, se pueden desactivar con la directiva register_long_arrays.
Variables variables:
Las superglobales no pueden usarse como variables variables.
Si ciertas variables no son definidas en variables_order, las matrices
PHP predefinidas asociadas a estas, estarán vacias.
Contiene una referencia a cada variable disponible en el
espectro de las variables del script. Las llaves de esta matriz
son los nombres de las variables
globales. $GLOBALS existe dese PHP 3.
Variables definidas por el servidor web ó directamente
relacionadas con el entorno en don el script se esta
ejecutando. Análoga a la antigua matriz
$HTTP_SERVER_VARS (la cual está todavía
disponible, aunque no se use).
Variables proporcionadas al script por medio de HTTP GET.
Análoga a la antigua matriz $HTTP_GET_VARS
(la cual está todavía disponible, aunque no se use).
Variables proporcionadas al script por medio de HTTP POST.
Análoga a la antigua matriz $HTTP_POST_VARS
(la cual está todavía disponible, aunque no se use).
Variables proporcionadas al script por medio de HTTP cookies.
Análoga a la antigua matriz $HTTP_COOKIE_VARS
(la cual está todavía disponible, aunque no se use).
Variables proporcionadas al script por medio de la subida de
ficheros via HTTP . Análoga a la antigua matriz
$HTTP_POST_FILES (la cual está todavía
disponible, aunque no se use). Vea también Subiendo ficheros por
método POST para más información.
Variables proporcionadas al script por medio del entorno.
Análoga a la antigua matriz $HTTP_ENV_VARS
(la cual está todavía disponible, aunque no se use).
Variables proporcionadas al script por medio de cuaquier
mecanismo de entrada del usuario y por lo tanto no se puede
confiar en ellas. La presencia y el orden en que aparecen las
variables en esta matriz es definido por la directiva de
configuración variables_order. Esta
matriz no tiene un análogo en versiones anteriores a PHP
4.1.0. Vea también
import_request_variables().
Nota:
Cuando se utiliza la linea
de comandos, argv y
argcno son incluidas
aquí; estas variables se podrán encontrar en la matriz
Variables registradas en la sesión del script. Análoga a la
antigua matriz $HTTP_SESSION_VARS (la cual
está todavía disponible, aunque no se use). Vea también la
sección Funciones para el manejo de
sessiones para más información.