Las tablas de valores
En las tablas que veremos a continuación tendremos –clasificadas por tipos– algunas variables predefinidas de PHP con sus valores actuales.
Para observar dicha tabla haz lo siguiente:
bájate el fichero tabla.php y cópialo en el directorio htdocs de tu servidor apache (yo lo tengo en c:\xampp\htdocs\CursoPhp\tabla.php) o bien copia el texto del recuadro azul y cópialo a un fichero "tabla.php" y ubícalo en tu directorio del curso php.
A continuación teclea en tu navegador: "http://localhost/CursoPHP/tabla.php.
Esta información (variables y valores) está siendo extraida de la configuración de tu servidor y de este documento.
Es muy probable que esté llamando tu atención el hecho de que dos nombres de variable distintos compartan el mismo valor.
Intentaremos ver el por qué de esa duplicidad.
Las variables de las columnas de la izquierda comienzan todas por $_, mientras que las de la derecha lo hacen por $HTTP y eso es algo muy importante.
En el primer caso se alude a las variables superglobales que hemos comentado en la página anterior, mientras que en el otro las variables no tienen ese carácter.
Para observar dicha tabla haz lo siguiente:
bájate el fichero tabla.php y cópialo en el directorio htdocs de tu servidor apache (yo lo tengo en c:\xampp\htdocs\CursoPhp\tabla.php) o bien copia el texto del recuadro azul y cópialo a un fichero "tabla.php" y ubícalo en tu directorio del curso php.
A continuación teclea en tu navegador: "http://localhost/CursoPHP/tabla.php.
|
Esta información (variables y valores) está siendo extraida de la configuración de tu servidor y de este documento.
Es muy probable que esté llamando tu atención el hecho de que dos nombres de variable distintos compartan el mismo valor.
Intentaremos ver el por qué de esa duplicidad.
Las variables de las columnas de la izquierda comienzan todas por $_, mientras que las de la derecha lo hacen por $HTTP y eso es algo muy importante.
En el primer caso se alude a las variables superglobales que hemos comentado en la página anterior, mientras que en el otro las variables no tienen ese carácter.
Razones de la duplicidad
La duplicidad de variables se justifica por lo siguiente: Las variables superglobales se introdujeron en PHP a partir de la versión 4.1.0 y no existían con anterioridad.
Con muy buen criterio, los desarrolladores PHP optaron por mantener las variables predefinidas de las versiones anteriores para evitar que los programadores que migraran sus aplicaciones a estas nuevas versiones de PHP se vieran obligados a reescribir el código de sus scripts.
Es por esta razón, por la que se mantienen dos variables distintas para recoger el mismo valor.
Observa la sintaxis de los nombres de las variables y comprobarás la similitud que existe entre ambas. Los corchetes y sus contenidos son exactamente iguales en ambos casos.
Tal es el caso de estas dos, que, por cierto, devuelven en número de la IP a través de la que está accediendo el usuario a nuestro servidor:
$_SERVER['REMOTE_ADDR']
y
$HTTP_SERVER_VARS
['REMOTE_ADDR']
cuya similitud resulta evidente.
Aunque los valores de ambas variables van a ser siempre idénticos, no ocurre lo mismo con su ámbito.
Las primeras son de ámbito superglobal y no necesitan ser declaradas expresamente con globales cuando se trata de utilizar sus valores dentro de cualquier función.
En el segundo caso va a ser imprescindible que sean declaradas como globales antes de que sus valores puedan ser utilizados dentro de una función.
Con muy buen criterio, los desarrolladores PHP optaron por mantener las variables predefinidas de las versiones anteriores para evitar que los programadores que migraran sus aplicaciones a estas nuevas versiones de PHP se vieran obligados a reescribir el código de sus scripts.
Es por esta razón, por la que se mantienen dos variables distintas para recoger el mismo valor.
Observa la sintaxis de los nombres de las variables y comprobarás la similitud que existe entre ambas. Los corchetes y sus contenidos son exactamente iguales en ambos casos.
Tal es el caso de estas dos, que, por cierto, devuelven en número de la IP a través de la que está accediendo el usuario a nuestro servidor:
$_SERVER['REMOTE_ADDR']
y
$HTTP_SERVER_VARS
['REMOTE_ADDR']
cuya similitud resulta evidente.
Aunque los valores de ambas variables van a ser siempre idénticos, no ocurre lo mismo con su ámbito.
Las primeras son de ámbito superglobal y no necesitan ser declaradas expresamente con globales cuando se trata de utilizar sus valores dentro de cualquier función.
En el segundo caso va a ser imprescindible que sean declaradas como globales antes de que sus valores puedan ser utilizados dentro de una función.
¿Nombres algo raros?
Probablemente te extrañará –justificadamente– la longitud y la estructura un tanto rara de estos nombres de variables. Cuando tratemos el tema de los arrays asociativos veremos que esa es la sintaxis habitual de ese tipo de variables.
Las nombres de las variables de cada uno de los tipos, sólo se diferencian en lo contenido entre los corchetes porque se trata de distintos elementos del mismo array asociativo y –tal como veremos– esa es la sintaxis típica de los array.
Las nombres de las variables de cada uno de los tipos, sólo se diferencian en lo contenido entre los corchetes porque se trata de distintos elementos del mismo array asociativo y –tal como veremos– esa es la sintaxis típica de los array.
¿Para qué sirven?
No vamos a agobiarte con una enumeración de variables y contenidos, pero a poco que observes las tablas de valores te darás cuenta de que es muy abundante y muy importante la información que recogen.
Si analizas las variables de servidor te darás cuenta de que aparece un montón de información relativa a su configuración: nombre, rutas, nombres de páginas, IP del servidor, etcétera.
Con los demás tipos ocurre algo similar.
Si analizas las variables de servidor te darás cuenta de que aparece un montón de información relativa a su configuración: nombre, rutas, nombres de páginas, IP del servidor, etcétera.
Con los demás tipos ocurre algo similar.
Los distintos tipos
Veamos los diferentes tipos de variables predefinidas que existen en PHP. Por ahora, no te preocupes demasiado sobre la forma de utilizarlas. Las incluimos aquí como una simple enumeración y con una breve descripción de su utilidad.
En temas posteriores haremos referencia a ellas. Por el momento nos bastará con conocer su existencia.
Estamos viendo los valores de las variables de de entorno (ENV) y las de servidor (SERVER), pero, además de ellas, existen algunas otras cuyos nombres y utilidades vamos a comentarte.
Variables características:
Variables de sesión
Las identificaremos por los nombres $_SESSION o por $HTTP_SESSION_VARS.
Este tipo de variables las utilizaremos cuando hagamos mención al uso de sesiones.
La utilización de sesiones –ya abundaremos en ello– es una forma de recoger, de forma temporal en un documento del mismo carácter, información específica generada a través de los accesos de cada uno de los usuarios.
El carácter efímero de las sesiones seguramente lo has comprobado más de una vez cuando al actualizar una página te ha aparecido un mensaje diciendo que la sesion ha caducado.
Variables del método POST
Las identificaremos por los nombres $HTTP_POST_VARS o por $_POST.
Este tipo de variables –que utilizaremos con frecuencia– recogen la información que se envia desde el cliente para ser utilizada por el servidor.
Recuerda el carácter dinámico de PHP y que ese dinamismo (interacción cliente – servidor) requiere que el servidor guarde los datos remitidos por el cliente.
Variables del método GET
Las identificaremos por los nombres $HTTP_GET_VARS o por $_GET
Son muy similares a las anteriores. La existencia de los dos tipos se justifica porque también existen dos tipos de métodos (maneras) de enviar datos desde el cliente hasta el servidor.
Cuando el método de envío es el llamado GET los datos se recogen en variables de este tipo, y, por el contrario, si ese método envío fuera POST se recogerían en aquellas.
Variables de transferencia de ficheros
Las identificaremos por el nombre $HTTP_FILES_VARS o por $_FILES.
Para el caso de transferencia de ficheros desde el cliente al servidor –«subir ficheros»– es necesario un procedimiento distinto de los anteriores.
Será en este caso cuando se utilicen variables de este tipo.
El tipo GLOBALS
A diferencia de las anteriores, las variables de este tipo disponen de una sintaxis única –$GLOBALS– sin que quepa ninguna otra opción.
Su finalidad es recoger en una tabla los nombres de todas la variables establecidas como globales –en cada momento– así como sus valores.
Conocida la existencia de los diferentes tipos de variables predefinidas y vista esta tabla –a modo de ejemplo de su utilidad– no será preciso que profundicemos más en el asunto.
Lo trataremos en el momento en el que tengamos que hacer uso de cada una de ellas.
En temas posteriores haremos referencia a ellas. Por el momento nos bastará con conocer su existencia.
Estamos viendo los valores de las variables de de entorno (ENV) y las de servidor (SERVER), pero, además de ellas, existen algunas otras cuyos nombres y utilidades vamos a comentarte.
Variables características:
argv | Array de argumentos pasados en la ejecución del script. |
$_SERVER['argc'] | Número de parametros pasados al script en su ejecución. |
$_SERVER['PHP_SELF'] | Nombre del script que se está ejecutando |
$_COOKIE | Array asociativo de pares (clave,valor) pasados a través de cookies |
$_GET | Array asociativo de pares (clave,valor) pasados a través de GET |
$_POST | Array asociativo de pares (clave,valor) pasados a través de POST |
$_FILES | Array asociativo que contiene información de los ficheros recibidos mediante POST |
$_ENV | Array asociativo de pares (clave,valor) del entorno |
$_SERVER | Array asociativo de pares (clave,valor) del servidor |
$_SESSION | Array asociativo de pares (clave,valor) de sesion |
Variables de sesión
Las identificaremos por los nombres $_SESSION o por $HTTP_SESSION_VARS.
Este tipo de variables las utilizaremos cuando hagamos mención al uso de sesiones.
La utilización de sesiones –ya abundaremos en ello– es una forma de recoger, de forma temporal en un documento del mismo carácter, información específica generada a través de los accesos de cada uno de los usuarios.
El carácter efímero de las sesiones seguramente lo has comprobado más de una vez cuando al actualizar una página te ha aparecido un mensaje diciendo que la sesion ha caducado.
Variables del método POST
Las identificaremos por los nombres $HTTP_POST_VARS o por $_POST.
Este tipo de variables –que utilizaremos con frecuencia– recogen la información que se envia desde el cliente para ser utilizada por el servidor.
Recuerda el carácter dinámico de PHP y que ese dinamismo (interacción cliente – servidor) requiere que el servidor guarde los datos remitidos por el cliente.
Variables del método GET
Las identificaremos por los nombres $HTTP_GET_VARS o por $_GET
Son muy similares a las anteriores. La existencia de los dos tipos se justifica porque también existen dos tipos de métodos (maneras) de enviar datos desde el cliente hasta el servidor.
Cuando el método de envío es el llamado GET los datos se recogen en variables de este tipo, y, por el contrario, si ese método envío fuera POST se recogerían en aquellas.
Variables de transferencia de ficheros
Las identificaremos por el nombre $HTTP_FILES_VARS o por $_FILES.
Para el caso de transferencia de ficheros desde el cliente al servidor –«subir ficheros»– es necesario un procedimiento distinto de los anteriores.
Será en este caso cuando se utilicen variables de este tipo.
El tipo GLOBALS
A diferencia de las anteriores, las variables de este tipo disponen de una sintaxis única –$GLOBALS– sin que quepa ninguna otra opción.
Su finalidad es recoger en una tabla los nombres de todas la variables establecidas como globales –en cada momento– así como sus valores.
Conocida la existencia de los diferentes tipos de variables predefinidas y vista esta tabla –a modo de ejemplo de su utilidad– no será preciso que profundicemos más en el asunto.
Lo trataremos en el momento en el que tengamos que hacer uso de cada una de ellas.
Fuente:
Página del ifstic: http://www.isftic.mepsyd.es/formacion/enred/
No hay comentarios:
Publicar un comentario