# Variables 1

## ¿Qué es una variable?

Una variable de un lenguaje de programación es un elemento que permite almacenar información. En los lenguajes de programación las variables se identifican por su nombre. En PHP el programador puede dar el nombre que quiera a las variables, con algunas restricciones:

- Los nombres de las variables tienen que empezar por el carácter $.
- A continuación tiene que haber una letra (mayúscula o minúscula) o un guión bajo (_).
- El resto de caracteres del nombre pueden ser números números, letras o guiones bajos.

Los nombres de variables pueden contener carácteres no ingleses (vocales acentuadas, eñes (ñ) o cedillas (ç), etc.) pero la costumbre es no utilizarlas.

En los nombres de las variables, PHP distingue entre mayúsculas y minúsculas, es decir, si se cambia algún carácter de mayúscula a minúscula o veciversa, para PHP se tratará de variables distintas.

Para facilitar la comprensión del programa, se aconseja que los nombres de las variables hagan referencia a la información que contienen. Por ejemplo, si se va a guardar en una variable la edad del usuario, un nombre adecuado de la variable sería por ejemplo $edad.

Si el nombre de la variable contiene varias palabras, se aconseja utilizar la notación "camel case", es decir, escribir la primera palabra en minúsculas y la primera letra de las siguientes palabras en mayúsculas. Por ejemplo, si se van a guardar en varias variables las edades del usuario y la de sus padres y abuelos, unos nombres adecuados podrían ser $edadUsuario, $edadPadre, $edadMadre, $edadAbueloPaterno, etc.

Volver al principio de la página

## Usar variables

Para guardar un valor en una variable se utiliza el operador de asignación (=) escribiendo a la izquierda únicamente el nombre de la variable y a la derecha el valor que queremos guardar. Si queremos guardar un número, no hace falta poner comillas, pero si queremos guardar una cadena de texto hay que poner comillas (dobles o simples).

    <?php
    $edad = 15;                // La variable $edad tiene ahora el valor 15
    $nombre = "Pepito Conejo"  // La variable $nombre tiene ahora el valor Pepito Conejo
    ?>

El programa anterior es correcto, aunque no produciría ningún resultado visible para el usuario.

Una vez se ha guardado un valor en una variable, para utilizar ese valor simplemente escribimos el nombre de la variable:

    <?php
    $edad = 15;
    print $edad;
    ?>
| 15

A lo largo de un programa una variable puede guardar diferentes valores:

    <?php
    $edad = 15;
    print $edad;
    $edad = 20;
    print $edad;
    ?>
| 1520

El programa anterior muestra pegados los valores 15 y 20 porque el programa no escribe espacios ni etiquetas.

En la parte derecha de la asignación se puede escribir expresiones matemáticas:

    <?php
    $radio = 15;
    $perimetro = 2*3.14*15;
    print $perimetro;
    ?>
| 94.2

Las expresiones pueden utilizar a su vez variables:

    <?php
    $radio = 15;
    $perimetro = 2*3.14*$radio;
    print $perimetro;
    ?>
| 94.2

Las expresiones pueden utilizar la propia variable que se va a modificar:

    <?php
    $edad = 15;
    $edad = 2*$edad;
    print $edad;
    ?>
| 30

Lo que hace el ordenador es calcular el resultado de la expresión de la derecha utilizando el valor actual de la variable y finalmente guardar el resultado en la variable.

La igualdad no hay que entenderla como una ecuación matemática, sino como una asignación (el resultado de la derecha se almacena en la variable de la izquierda).

En los nombres de las variables, PHP distingue entre mayúsculas y minúsculas, es decir, si se cambia algún carácter de mayúscula a minúscula o veciversa, para PHP se tratará de variables distintas.

    <?php
    $Edad = 15;
    $edad = 20;
    print $Edad;
    ?>
| 15

Volver al principio de la página

## Concatenar variables y cadenas

El operador . (punto) permite concatenar dos o más cadenas.

    <?php
    $cadena1 = "Pasa";
    $cadena2 = "tiempos";
    $cadena3 = $cadena1.$cadena2;
    print "<p>$cadena3</p>";
    ?>
| <p>Pasatiempos</p>
    <?php
    $cadena1 = "Corre";
    $cadena2 = "ve";
    $cadena3 = "idile";
    $cadena4 = $cadena1.$cadena2.$cadena3;
    print "<p>$cadena4</p>";
    ?>
| <p>Correveidile</p>

El operador . (punto) se puede utilizar en la instrucción print. En el ejemplo siguiente se concatenan una cadena, una variable y una cadena.

    <?php
    $nombre = "Don Pepito";
    print "<p>¡Hola, ".$nombre."! ¿Cómo está usted?</p>";
    ?>
| <p>¡Hola, Don Pepito! ¿Cómo está usted?</p>

Nota: En el ejemplo anterior, se puede obtener el mismo resultado sin utilizar el operador . (punto):

    <?php
    $nombre = "Don Pepito";
    print "<p>¡Hola, $nombre! ¿Cómo está usted?</p>";
    ?>
| <p>¡Hola, Don Pepito! ¿Cómo está usted?</p>

Volver al principio de la página

## Variables en cadenas

La forma de insertar variables dentro de cadenas depende del tipo de variable utilizado.

En el caso de números, cadenas o matrices de una dimensión, las variables se puede insertar directamente:

    <?php
    $numero = 5000;
    $texto = "cinco mil";
    $seEscribe = Array("junto", "separado");
    print "<p>El número $numero se escribe $seEscribe[1]: $texto</p>";
    ?>
| <p>En número 5000 se escribe separado: cinco mil</p>

En el caso de matrices de dos o más dimensiones, las variables no se puede insertar directamente:

    <?php
    $nombre = "Don Pepito";
    $saludos = Array( Array("Hola", "Hello"), Array("Adios", "Goodbye"));
    print "<p>¡$saludos[0][0], $nombre! ¿Cómo está usted?</p>";
    ?>
| <p>¡Array[0], Don Pepito! ¿Cómo está usted?</p>

Este resultado se obtiene porque PHP no sustituye la variable $saludos[0][0] por su valor, sino que sustituye únicamente la primera parte ($saludos[0]). Como $saludos[0] es una matriz de una dimensión, no puede escribir ningún valor y devuelve simplemente "Array". A continuación, PHP añade el [0] que quedaba y se obtiene la cadena "Array[0]".

Una solución es sacar la matriz de la cadena:

    <?php
    $nombre = "Don Pepito";
    $saludos = Array( Array("Hola", "Hello"), Array("Adios", "Goodbye"));
    print "<p>¡".$saludos[0][0].", $nombre! ¿Cómo está usted?</p>";
    ?>
| <p>¡Hola, Don Pepito! ¿Cómo está usted?</p>

Otra solución es utilizar llaves ({ }) rodeando la variable:

    <?php
    $nombre = "Don Pepito";
    $saludos = Array( Array("Hola", "Hello"), Array("Adios", "Goodbye"));
    print "<p>¡{$saludos[0][0]}, $nombre! ¿Cómo está usted?</p>";
    ?>
| <p>¡Hola, Don Pepito! ¿Cómo está usted?</p>

Si se quiere mostrar el resultado de operaciones matemáticas (sin utilizar variables auxiliares), es necesario efectuar las operaciones fuera de las cadenas. En algunos casos no es necesario escribir las operaciones entre paréntesis pero, si se escriben entre siempre paréntesis no hace falta preocuparse por cuándo hacen falta y cuándo no.

    <?php
    $x = 3;
    $y = 4;
    print "<p>Suma: $x + $y = ".($x+$y)."</p>\n";
    print "<p>Multiplicación: $x x $y = ".($x*$y)."</p>";
    ?>
| <p>Suma: 3 + 4 = 7</p> <p>Multiplicación: 3 x 4 = 12</p>

Si se quiere escribir el nombre de una variable, es decir, para que PHP no sustituya la variable por su valor, hay que escribir una contrabarra (\) antes de la variable.

    <?php
    $x = 3;
    print "<p>La variable \$x vale $x</p>\n";
    ?>
| <p>La variable $x vale 3</p>

En html/css a veces es necesario juntar números y carácteres, como en el ejemplo siguiente en el que se establece el tamaño del párrafo en 30px:

    <?php
    print "<p style=\"font-size: 30px\" >Texto grande</p>\n";
    ?>
| <p style="font-size: 30px" >Texto grande</p>

Si el tamaño está almacenado en una variable, no se puede juntar la variable con los caracteres ya que se interpretaría como una variable que no está definida y toma el valor vacío:

    <?php
    $x = 30;
    print "<p style=\"font-size: $xpx\" >Texto grande</p>\n";
    ?>
| <p style="font-size: " >Texto grande</p>

... pero se pueden utilizar llaves o sacar la variable de la cadena:

    <?php
    $x = 30;
    print "<p style=\"font-size: {$x}px\" >Texto grande</p>\n";
    ?>
| <p style="font-size: 30px" >Texto grande</p>
    <?php
    $x = 30;
    print "<p style=\"font-size: ".$x."px\" >Texto grande</p>\n";
    ?>
| <p style="font-size: 30px" >Texto grande</p>

Volver al principio de la página

Esta obra está bajo una licencia de Creative Commons Reconocimiento-CompartirIgual 3.0 España.