AnteriorPosterior

2. Variables en PHP

  Curso: Introducción a PHP

2.- Variables en PHP

Un primer paso para ganar en versatilidad es no escribir siempre textos prefijados. Si lo que escribimos se indica entre comillas, aparecerá tal cual; si no está entre comillas, el intérprete de PHP intentará deducir cual es su valor.

Así, nuestro segundo ejemplo (php02.php) podría ser un sencillo programa que sumara dos números, así

<html>
<body>
<?php
// php02.php - Valores calculados
 
echo "2+3 es ";
echo 2+3;
echo " ¿verdad?";
?>
</body>
</html>

Su resultado sería este:

2+3 es 5 ¿verdad?

La línea que comienza por doble barra es un comentario, que puede ser útil para el programador pero no afectará al resultado del programa.

Podemos escribir varias cosas con la orden "echo"; basta separarlas con comas).

<html>
<body>
<?php
// php02b.php - Valores calculados y "echo" con coma
echo "2+3 es ", 2+3, " ¿verdad?";
?>
</body>
</html>

que tendría el mismo resultado:

2+3 es 5 ¿verdad?

Ejercicio propuesto 2.1: Crea una página en PHP que muestre el resultado de multiplicar 125 y 237.

En la práctica, tampoco es normal que esos valores a calcular estén prefijados, sino que estén almacenados en una variable, porque procedan de un cálculo posterior. Dentro de poco veremos cómo hacer cálculos sencillos, y más adelante veremos cómo recibir datos desde otra página. De momento, nuestras variables tendrán valores prefijados por nosotros.

Para definir una variable deberemos usar un nombre que comience por el símbolo $. Al contrario que en otros muchos lenguajes, en PHP no es necesario declarar las variables antes de usarlas, ni indicar qué tipo de datos van a almacenar (se deducirá del contexto).

Nuestro tercer ejemplo (php03.php), que maneje alguna variable, podría ser

<html>
<body>
<?php
// php03.php - Variables
 
$nombre = "Nacho";
$numero = 5;
$segundoNumero = 6.7;
$negritaSI = "<b>";
$negritaNO = "</b>";
 
echo "Hola, ", $negritaSI, $nombre, $negritaNO,
"<br />El primer numero es ", $numero,
" y el segundo es ", $segundoNumero;
?>
</body>
</html>

Que en el navegador se vería así:

Hola, Nacho
El primer numero es 5 y el segundo es 6.7

Como se ve en este ejemplo, se pueden escribir códigos HTML dentro de una orden "echo", bien sea directamente, o con la ayuda de variables.

Si pedimos operaciones numéricas, como sumar o multiplicar, los datos se convierten a numéricos automáticamente (si es posible). Por ejemplo, si sumamos una variable de valor 10 y otra de valor "7" (una cadena), el resultado será 17. Si lo que queremos es concatenar dos cadenas de texto (crear una nueva cadena formada por la unión de esas dos), no usaremos el operador "+", sino el punto "."; vamos a ver las operaciones más habituales en un ejemplo (php04):

<html>
<body>
<?php
// php04.php - Variables y operaciones aritméticas
 
$n1 = 201;
$n2 = "35";
 
echo "Los numeros son ", $n1, " y ", $n2, ".<br />";
echo "Suma: ", $n1+$n2,"<br />";
echo "Resta: ", $n1-$n2,"<br />";
echo "Producto: ", $n1*$n2,"<br />";
echo "Division: ", $n1/$n2,"<br />";
printf("Division sin decimales: %d<br />", $n1/$n2);
echo "O bien: ", intval($n1/$n2), "<br />";
echo "Resto de la division: ", $n1 % $n2, "<br />";
echo "Concatenados: ", $n1 .$n2, "<br />";
?>
</body>
</html>

que daría como resultado

Los numeros son 201 y 35.
Suma: 236
Resta: 166
Producto: 7035
Division: 5.7428571428571
Division sin decimales: 5
O bien: 5
Resto de la division: 26
Concatenados: 20135

Hay varias cosas que comentar en este programa:

  • La variable $n2 contiene una cadena de texto, pero aun así se puede operar con ella como si fuera un número, porque el sistema convierte de cadena a dato numérico de forma transparente.
  • Las operaciones matemáticas son las habituales en la mayoría de lenguajes de programación: + - / *. También se puede calcular el resto de la división con %.
  • Al contrario que en otros lenguajes como C y C#, la división siempre da un resultado con decimales, aunque los dos operandos sean enteros
  • Si no queremos mostrar los decimales, podemos usar "printf", en vez de "echo". El código de formato "%d" hará que se muestre como un número entero. Una alternativa es usar "intval", que nos da el valor entero del dato que se indique entre paréntesis.
  • Podemos concatenar dos cadenas de texto, para obtener una nueva cadena a partir de ellas, usando el operador "."

Ejercicio propuesto 2.2: Crea una página en PHP que calcule y muestre el resto de dividir 1380 entre 7.

Existe una sintaxis abreviada para "echo", que consiste en forma todavía más sencilla de hacerlo, que es usando sólo un símbolo de "igual" (=). En versiones de PHP anteriores a la 5.4.0 puede no estar disponible, según sea la configuración del sistema (veremos más adelante cómo cambiarla). Por ejemplo, ésta sería una forma alternativa para el fichero php02.php, que también escribiría 5 en pantalla:

<html>
<body>
<?=2+3?>
</body>
</html>

En PHP se pueden usar tanto las comillas dobles como las simples, pero el comportamiento no es el mismo: si incluimos el nombre de una variable dentro de unas comillas dobles, se reemplazará por su valor, pero no si son comillas simples:

<html>
<body>
<?php
// php05.php - Comillas simples y dobles
 
$numero = 201;
 
echo "Con comillas dobles: $numero <br />";
echo 'Con comillas dobles: $numero <br />';
?>
</body>
</html>

que mostraría:

Con comillas dobles: 201
Con comillas dobles: $numero

Ejercicio propuesto 2.3: Crea una página en PHP que calcule y muestre el resultado de la operación ((3+7)*12)/5

Actualizado el: 06-12-2013 10:54

AnteriorPosterior