005 Variables
Al programar, es útil poder guardar información en un recipiente que puede usar, manipular, pasar, y guardar. Para tal, se utiliza una variable. Como el nombre sugiere, una variable es un recipiente cuyo contenido se puede variar o cambiar.
Los nombres de variables en PHP tienen que empezar con el signo de dólar estadounidense: $
. Lo que sigue es el nombre de la variable. Algunos ejemplos: $a
, $ejemplo1
, $estaEsUnaVariable
, y $tambien_es_esta
. El nombre de la variable tiene que ser letras, números, y/o guiones bajos. (Se permite letras con acento y la "ñ", ¡pero no puede empezar con un número!) Ni espacios ni caracteres especiales se permiten, y nombres de variables distinguen entre mayúsculas y minúsculas. Así que $nombre
NO ES lo mismo que $Nombre
. Algunos ejemplos de nombres de variables ilegales: $3invalida
, $a-b-c-no-vale
, $no¡Señor!
.
El operador de asignación
Una vez que tiene su nombre de variable, lo llena utilizando el operador de asignación, lo cual es el signo igual: =
. Para usar el operador de asignación (=), lo que está ubicado al lado derecho del signo igual es asignado a lo que está ubicado al lado izquierdo del signo igual.
Ejemplos:
<?php
// Una variable puede contener un número:
$a = 45;
$b = 3.1415;
$c = -1600;
// Or létras:
$d = "abc";
$e = 'Éste es una cadena de caracteres (un string).';
// O booleanos:
$f = true;
$g = false;
// O nulo:
$h = null;
// O arrays:
$i = array();
$j = [];
// O objetos (más sobre el tema en lecciones que vienen):
$k = new stdClass();
// O aún otra variables:
$l = $a;
$m = "La definición de PI es: $b";
?>
No se preocupe si aún no entiende algunos de esos ejemplos. Todo se cubrirá en lecciones posteriores. El punto es que variables son versátiles y son construidos usando el operador de asignación.
Variables variables
A veces es útil usar variables variables. Este concepto tal vez puede estirar un poco su mente. Es un nombre de variable que se puede configurar dinámicamente. Usa el valor de una variable como el nombre de una variable.
<?php
// Primero, asigna una variable a un string:
$dispositivo = 'celular';
// Siguiente, asigna el valor usando dos $
$$dispositivo = 'teléfono';
// Luego se puede mostrar
echo $dispositivo; // salida: celular
echo $$dispositivo; // salida: teléfono
// Anota que se puede referenciar la variable directamente
echo $celular; // salida: teléfono
// Usa paréntesis para aclarar las cosas
echo ${$dispositivo}; // salida: teléfono
?>
Este concepto puede resultar muy confuso. Por eso no se recomienda usar a menudo. Sin embargo, a veces sí puede ser útil. Considere una situación en que usted tiene una serie de variables, métodos, o classes relacionados sólo uno del cual se requiere y el uso del cual será determinado por entrada del usuario. Es un asunto trivial usar un condicional para determinar cuál usar. Pero si la lista de series relacionadas crece, el número de condicionales crecerá con ella. Una variable variable mantendrá esto elegantemente, sin importar cuantas cosas son agregadas a la serie. Ejemplos de esto puede ser un router o el patrón de estrategia.
Por ahora es suficiente sabre que esto existe. Desarrolladores de PHP no la usan a menudo típicamente, pero es bueno saber que está allí cuando la necesita.
Constantes y constantes predefinidas y constantes mágicas
Una constante es como una variable en que uno puede asignarla un valor, y se distingue mayúsculas y minúsculas. Pero diferente a una variable, una vez que una constante ha sido asignada su valor inicial, no puede cambiar. Por convención, constantes son típicamente todo mayúsculas para que sean fáciles de reconocer. También diferente a una variable, constantes no empiezan con $. Una constante debe empezar con una letra o un guión bajo y sólo contienen letras, números, y guiones bajos. Constantes tienen un acceso global, que quiere decir que se pueden acceder desde cualquier sitio del script.
<?php
// Constantes son declaradas usando el método define()
define("PI", 3.1415);
define("HTTP_OK_STATUS", "200 OK");
// Ud. puede empezar y terminar una constante con dos guiones bajos, pero es una practica mala.
define("__HOLA__", "Hola"); // No haga esto.
?>
Constantes predefinidas
PHP da algunas constantes para su uso. Hay muchas. Puede ver una lista completa en la documentación de constantes predefinidas. Aquí hay algunas especialmente notables:
PHP_VERSION
- La versión de PHP actual en una cadena de letras.PHP_EOL
- El símbolo del fin de línea por cualquiera plataforma en uso.E_ERROR
,E_WARNING
,E_NOTICE
- Relacionado al informe de error.true
,false
- Valores booleanos. Estos son constantes únicas (junto con null) en que no distinguen entre mayúsculas y minúsculas.null
- Nulo. Representa una variable sin valor. También no distingue entre mayúsculas y minúsculas.
Constantes mágicas
PHP tiene un grupo de nueve constantes a que las llame mágicas en el sentido de que cambian dependiendo en donde se usan. Estas constantes empiezan y terminan con dos guiones bajos. Por esta razón no es buena idea usar la convención en su código porque algún día PHP puede crear una constante con el mismo nombre del suyo, creando un conflicto. Puede ver la lista complete en la documentación de PHP de constantes mágicas. Aquí has tres:
__LINE__
- El número de línea actual en el archivo__FILE__
- Ruta completa y nombre del archivo__DIR__
- Directorio del archivo
Variables predefinidas y superglobales
PHP tiene muchos variables predefinidas por su uso en cualquier script. Hay una lista en la página de documentación de PHP de variables predefinidas. Estas variables pueden variar dependiendo en el servidor y sistema en lo cual PHP se ejecute.
$php_errormsg
- El mensaje de error anterior$http_response_header
- Encabezados de repuesta HTTP$argc
- El número de argumentos pasados a un script$argv
- Array de argumentos pasados a un script
Nueve de las variables predefinidas son superglobales, lo que significa que son variables incorporados que siempre están disponibles.
$GLOBALS
- Todas las variables disponibles en el ámbito global$_SERVER
- Información del servidor$_GET
- Variables HTTP GET$_POST
- Variables HTTP POST$_FILES
- Variables de subida de HTTP$_COOKIE
- Cookies HTTP$_SESSION
- Variables de sesión$_REQUEST
- Variables HTTP Request$_ENV
- Variables de entorno
Recursos
Retos
Intercambio de variables
Crear tres variables: $a, $b, y $temporario.
Usando el operador de asignación, asigna el valor de "Manzana" a $a y asigna el valor de "Plátano" a $b. Por último, asigna el valor de "" (o sea, un string vacía) a $temporario.
Usando la variable $temporario, intercambia los valores de $a y $b tal de que $b contendrá "Manzana" y $a contendrá "Plátano".
Información de configuración
Usa el script que sigue para ver mucha información de la configuración de PHP en el browser.
<?php
phpinfo();
?>
Puede ejecutar lo mismo desde la línea de comando, primero ejecutando
php -a
y después:
phpinfo();