La programación nos permite hacer ciertas acciones (instrucciones) con ciertas cosas (datos). Antes de saber qué es lo que podemos hacer con un lenguaje de programación como PHP veremos cómo podemos definir los datos.
Durante el funcionamiento de un programa, los datos se guardan en la memoria del programa en zonas que se denominan áreas de variables.
¿Qué es una variable?
Es un área de memoria a la que se le asigna un nombre identificador y donde podemos guardar valores que pueden variar a lo largo del programa (de ahí su nombre de variable).
Nomenclatura de las variables
El nombre de las variables en PHP es bastante flexible pero aún así tiene ciertas restricciones. Éstas son las normas de la nomenclatura:
- El primer carácter del nombre debe ser el signo dólar ($).
- El segundo carácter puede ser una letra o el guión bajo. Como letra se entiende a-z, A-Z y los caracteres ASCII de 127 a 255).
- A partir del tercer carácter además de letras y guión bajo se pueden usar números.
- No hay límites en la longitud del nombre.
- Se diferencian las minúsculas de las mayúsculas.: $A es diferente a $a.
Éstos son nombres de variables válidos:
- $Cuenta_cliente
- $_1ernombre
- $apellido
- $Apellido (es diferente que la anterior)
Éstos son nombres incorrectos y porqué:
- Cuenta (falta el signo $)
- $1ernombre (segundo carácter es numérico)
- $S% (signo %)
Éstos son nombres válidos pero no recomendables (especialmente en programas cuyo mantenimiento se comparte con otros programadores y cuando no se trata de un código muy básico) :
- $Q123Dert (no explica su contenido o utilidad)
- $a (no explica su contenido o utilidad) Aunque en este libro la utilizaremos muchas veces, pero siempre en ejemplos sencillos.
Con el correr del tiempo, la correcta definición de los nombres de las variables nos puede hacer ahorrar muchas horas en la depuración de los errores de programas y en el mantenimiento de las aplicaciones. |
Declaración de variables
PHP también es flexible en lo que se refiere a la declaración de las variables.
- No hace falta declarar la variable antes de utilizarla.
- Una variable no se define como perteneciente a un tipo de dato determinado.
El tipo de dato de una variable puede variar según los valores que contenga a lo largo de la ejecución del programa. Esto es algo muy práctico para el programador pero es un arma de doble filo, como el tipo Variant de Visual Basic (hasta la versión 6, ya que en .NET felizmente desapareció, no sin antes hacer bastante daño). Por esa flexibilidad pagaremos un alto precio en la depuración de los programas. Los lenguajes de tipo seguro (donde las variables son de un tipo durante toda su vida y cuyo tipo define que instrucciones se pueden aplicar sobre la variable) son más eficientes, rápidos y menos propensos a los errores en tiempo de ejecución.
Más adelante, al estudiar el tema de las clases podremos ver que el uso intensivo de clases y la programación orientada a objetos nos permitirán aproximarnos en cierto grado a una programación con datos de tipo seguro.
Variables predefinidas
Además de las variables que el programador puede definir para hacer funcionar su programa, PHP suministra una gran cantidad de variables predefinidas que se pueden usar libremente en todos los scripts o secuencias de comandos que desarrollemos. Existen dos grupos principales de variables predefinidas:
- Variables predefinidas del servidor o de entorno
- Variables de PHP
Variables predefinidas del servidor
Son aquellas variables predefinidas que el servidor Web pone a disposición de PHP y transitivamente también a disposición del programador. El servidor Web coloca estas variables en la matriz $_SERVER. Las variables de entorno varían dependiendo del servidor utilizado y también de la configuración definida.
En la siguiente lista de datos de entorno se mencionan algunos de los datos del entorno o de servidor más comúnmente utilizados, si queremos conocer la lista completa podremos verlos usando la instrucción PHPInfo(), que también nos muestra el otro tipo de variable predefinida y otros datos generales de la configuración.
Las variables predefinidas son un poco especiales ya que su disponibilidad dependerá del servidor que estamos utilizando e incluso de la versión del servidor. A partir de la versión 4.1.0 PHP incluyó unas matrices predefinidas que centralizan las variables de entorno y las entradas del usuario. Más adelante analizaremos el tema de las matrices que se conocen con el nombre de matrices superglobales, por ahora es suficiente con conocer su existencia y que podremos referirnos a las variables de entorno con una sintaxis como esta:
echo $_SERVER['SERVER_PORT'];
- DOCUMENT_ROOT: Directorio raíz en el servidor (donde estarán los archivos .php).
- HTTP_REFERER: Dirección de la página desde donde se pasó a la página actual.
- REMOTE_ADDR: Dirección IP remota desde donde se realizó la petición de la página PHP.
- SERVER_ADDR: Dirección IP.
- SERVER_NAME: Nombre del equipo del servidor.
- SERVER_PORT: Puerto que utiliza el servidor Web (por ejemplo, 80).
- SERVER_SOFTWARE: Software del servidor Web (por ejemplo, Apache/2.2.13).
- WINDIR: Directorio del sistema operativo (Por ejemplo, C:\Windows).
Variables de PHP
Son aquellas variables predefinidas que pertenecen al intérprete PHP y que éste pone a disposición del programador. La mayor parte de estas variables son matrices.
- $GLOBALS: Referencia a todas las variables en el ámbito global.
- $_SERVER: Variables del servidor vistas en la sección anterior.
- $_GET: Variables GET HTTP.
- $_POST: Variable POST HTTP.
- $_FILES: Variables para subir archivos HTTP.
- $_REQUEST: Variables de peticiones HTTP.
- $_SESSION: Variables de sesión.
- $_ENV: Variables de entorno.
- $_COOKIE: Cookies HTTP:
- $php_errormsg: Mensaje de error anterior.
- $HTTP_RAW_POST_DATA: Datos POST RAW.
- $http_response_header: Encabezados de respuesta HTTP.
- $argc: Cantidad de argumentos pasados al script.
- $argv: Matriz de argumentos pasados al script.