¿Qué son las variables en PHP?

Resumen.

Se puede decir que las variables son como las palabras de un idioma, en ellas se encuentra el elemento operativo de un lenguaje de programación, la información. Hay diferentes tipos de variables, y de eso va este capitulo, de sus tipos y definición. Por ultimo también trataremos los comentarios, esa gran ayuda para el programador.

Artículo.

Comprender qué es una variable dentro de un lenguaje de programación es fundamental para comprender como funciona un lenguaje, sea cual sea este. Las definiciones técnicas y/o formales no me gustan, ya que estas son comprendidas por personas con conocimientos formales sobre la materia. Así que yo haré una definición del concepto de variable a mi manera.

Una variable en un lenguaje de programación es como una caja, un paquete en el que podemos guardar cosas, en este caso, datos, para modificarlos, enviarlos de un lugar a otro o guardarlos, por ejemplo, en una base de datos.


El concepto de variable, es por decirlo de alguna manera, el núcleo de un lenguaje de programación, todo lo que hace PHP es asignar valores a variables y ejecutar alguna acción sobre el contenido de estas variables.

Asignar un valor a una variable es lo que de denomina definir una variable. En PHP como en otros lenguajes, hay que indicar en que lenguaje estamos trabajando, esto lo hacemos mediante las etiquetas:


<?php
// Esto es un código PHP vacío, sin ninguna variable.
?>


Ahora definiremos una variable:


<?php
// Así definimos una variable, es decir, le asignamos un valor.
$mi_variable = 'Aprendiendo sobre las variables en PHP. ';
?>


Pero si te animas a ejecutar este código, no verás ningún resultado. Aunque la variable está definida, esta está solo en PHP, no hay salida del valor de la variable para que lo interprete un navegador. ¿Cómo podemos hacer que el valor de esta variable sea interpretada por el navegador y la veamos en nuestras pantallas? Muy sencillo, por ejemplo así:


<?php
// Así definimos una variable, es decir, le asignamos un valor.
$mi_variable = 'Aprendiendo sobre las variables en PHP. ';
/* Así hacemos que el valor de la variable sea interpretada por el navegador */
echo $mi_variable;
?>


Hasta aquí, todo bien, muy bonito, sencillo de comprender, pero ¿a dónde nos lleva esto?, esto lo podemos hacer en HTML sin ningún problema, ¿Qué gano cuando uso PHP?


<?php
$mi_variable = 'Aprendiendo sobre las variables en PHP. ';
/* Aplicamos una función nativa para contar el número de caracteres contenidos en la variable */
$n_carac = strlen($mi_variable);
echo "En <b>$mi_variable</b> hay $n_carac caracteres. ";
?>


Ahora ya empezamos a ver la capacidad de PHP para hacer cosas, hemos hecho algo muy simple y muy sencillo, y esto que hemos hecho no es gran cosa, pero nos puede servir por ejemplo para validar las entradas de un formulario. Pero ahora no nos preocuparemos de esto, sigamos conociendo las variables.

Las variables en PHP se nombran comenzando con el signo dólar ($) seguido de un guión bajo (_) o carácter alfabético. Pongamos algunos ejemplos correctos e incorrectos de nombrar variables:

Formas CORRECTAS de nombrar variables:
$nombre
$Apellido
$_sexo
$apellido1
$Apellido2
$telefono_WhatsApp

Formas INCORRECTAS de nombrar variables:
$ nombre // no admite espacios en blanco
$1apellido // no admite numérico tras $
$segundo-apellido // no admite guión central (-)
$país // no admite acentuación

Estos casos, desde mi punto de vista, cubren la mayoría de las situaciones. Cabe indicar que las variables diferencian entre mayúsculas y minúsculas, No es lo mismo $nombre que $Nombre. Para más detalles sobre como nombrar variables en PHP consulte la página oficial.

Otro aspecto a la hora de definir variables es como asignar un valor, veamos a que nos referimos. Cuando queremos asignar un valor a una variable, se puede hacer de diferentes formas. Veamos:

$nombre1 = Antonio; // incorrecta e inadmisible
$nombre2 = "Antonio"; // incorrecta pero admisible
$nombre3 = 'Antonio'; // correcta

$precio1 = 42; // correcta
$precio2 = '42'; // incorrecta pero admisible
$precio3 = "42"; // incorrecta pero admisible
$telefono1 = 555112233; // incorrecta pero ¿admisible?
$telefono2 = '555112233'; // correcta
$telefono3 = "555112233"; // incorrecta pero admisible
$ciudad1 = ''; // variable vacía, correcta
$ciudad2 = ""; // variable vacía, incorrecta pero admisible
$ciudad3 = null; // variable no definida/nula, correcta

¿Qué queremos decir con todo esto?

Básicamente podemos decir que existen tres posibles tipos de variables:

Las variables tipo cadena o string.- Son las variables que contienen un conjunto de caracteres, como por ejemplo un nombre, una dirección de e-mail, un texto, etc. En definitiva, son valores que no permiten operaciones matemáticas con ellos, esto es clave para diferenciar los tipos de variables. Es el caso de la variable $nombre. Estas variables lo ideal es que el valor esté entre comillas simples ('), y no entre comillas dobles ("), aunque el uso de las comillas dobles aparentemente es idéntico, no lo es, resulta menos eficiente. Ya veremos en que casos si tenemos que usar las comillas dobles más adelante.

Las variables numéricas.- El caso de las variables numéricas puede resultar un poco mas confuso, ahora bien, como antes dijimos, pensemos en si tiene sentido sumar al precio de un producto, o sumar a un número de teléfono. En ambos casos tenemos valores numéricos, pero mientras que en el caso de los precios, tiene sentido sumar, por ejemplo, gastos de envío; a un número de teléfono o al número de mi dirección postal, no tiene sentido operar, sumar o restar nada. Así un valor numérico será el precio de un artículo, e irá sin comillas, $precio1. En los casos $precio2 y $precio3, el valor será interpretado como cadena o string. Esto según los casos, no suele generar problemas, pero me he dado con casos concretos, en los que esa no diferenciación del tipo de variable, me ha dado dolores de cabeza.

Las variables vacías y nulas.- Una variable vacía es aquella variable que ha sido definida con una ausencia de valor como en $ciudad1, mientras que $ciudad3 ha sido definida como sin valor. Aunque pueda parecer lo mismo, no lo es, de hecho ciertas estructuras condicionales responden de manera diferente ante uno u otro caso. Y mucho OJO, el valor null nunca puede ir entre comillas sean simples o dobles $ciudad3. Al igual que en los casos anteriores es preferible usar las comillas simples (') antes que las dobles (") a la hora de definir una variable como vacía.

Llegados a este punto, alguien dirá que existe otro tipo de variables muy importantes, y si, efectivamente lo hay, y son las variables tipo array, pero dada su importancia y mayor complejidad, le dedicaremos un capitulo exclusivo a estas variables, los array o conjuntos.

La función de PHP gettype() nos permite conocer el tipo de las variables.


<?php
$mi_variable = 'Aprendiendo sobre las variables en PHP. ';
/* Aplicamos una función nativa para saber de que tipo es la variable */
$tipo_var = gettype($mi_variable);
echo 'La variable <b>$mi_variable</b> es de tipo '."<b>$tipo_var</b>.";
?>


Observe como la variable $mi_variable no es interpretada dado que se encuentra entre comillas simples. El punto (.) lo que hace es unir los dos espacios entre comillas simples y dobles. De igual manera se puede utilizar para unir dos variables.


<?php
$numero1 = 3;
$numero2 = 7;
/* Unimos dos variables en una */
$valor = $numero1.$numero2;
echo $valor; // Devuelve 37
?>


Por ultimo, parece que hemos hablado de las comillas dobles, pero de igual manera parece que no sirven para nada. Pero si, son fundamentales. La diferencia entre las comillas simples y dobles, es que las primeras no interpretan las variables, mientras que las segundas si lo hacen. ¿Qué queremos decir con esto?

Recordemos el código antes expuesto:


<?php
$mi_variable = 'Aprendiendo sobre las variables en PHP. ';
/* Aplicamos una función para contar el número de caracteres contenidos en la variable */
$n_carac = strlen($mi_variable);
echo "En <b>$mi_variable</b> hay $n_carac caracteres.";
?>


La instrucción o constructor echo requiere también el uso de comillas, siguiendo criterios análogos a la definición de variables. Pues bien, si el echo hubiera sido delimitado por comillas simples, el resultado seria el mismo que puede verse en el mismo código, y el valor de las variables no habría sido interpretado. Prueba el código antedicho con comillas simples y dobles como delimitadores de echo, y observa la diferencia.

Por otro lado, cuando una variable toma el valor de otra, la variable no precisa de comillas dobles, pero por ejemplo si contiene alguna etiqueta HTML, si precisará de comillas dobles.


<?php
$nombre = 'Antonio';
$lugar = 'Badajoz';
$ciudad1 = $lugar;
$ciudad2 = "<b>$lugar</b>";

echo "Soy $nombre y vivo en $ciudad1 <br />y ahora en negrita $ciudad2.";
?>


Por ultimo vamos ha hablar de algo que aparece en los códigos anteriores y no ha sido explicado, los comentarios o notas.

Como puede imaginarse, el número de variables que son precisas para un sitio Web, puede ser muy elevado. Normalmente no hay problemas mientras estamos trabajando en nuestra Web para identificarlas. Pero pasa el tiempo, y tenemos que hacer algún tipo de modificación en nuestro código. Entonces aparecen los problemas, tengo una variable que se llama $usuario y otra llamada $user, el problema es que diferencia hay entre una y otra. Para no tener que empezar a darle vueltas al código y ver el origen de cada una, podemos agregarle una nota, un comentario, que nos diga que es esa variable.

Las notas o comentarios se pueden hacer de varias formas, veamos.


<?php
// Esto es un comentario breve de una sola línea.
# Equivale al anterior
/* Esto es un comentario de mas de una línea que nos
será válido para textos extensos como un listado de
condiciones, o para inhabilitar una parte de código
$nombre = 'Pepe'; */
/*
También así:
$var1 = 'algo1';
$var1 = 'algo1';
$var1 = 'algo1';
$var1 = 'algo1';
$var_n = 'algo_n';
*/

$nombre = 'Antonio';
$lugar = 'Sevilla';
$ciudad1 = $lugar;
$ciudad2 = "<b>$lugar</b>";

echo "Soy $nombre y vivo en $ciudad1 <br />y ahora en negrita $ciudad2.";
?>


Como podemos ver, el código se ejecuta sin ningún tipo de problemas, los comentarios o notas, como si no existieran. Los comentarios aunque están dentro del código, es como si no estuvieran, son solo información para el programador y una ayuda inestimable para él.
Tags: variable || string || cadena || null || numérica || strlen || gettype || comillas

Comentarios.

Sin comentarios, publica el tuyo.