Expresiones matemáticas

La operaciones o expresiones matemáticas en PHP se formulan de una forma natural:

Ejemplo:

<?php
$suma = 5 + 6;
// Esto pone en pantalla el número 11
echo 'El resultado de la suma es: ' . $suma ;
?>

Sin embargo, no es obligatorio que el resultado de una expresión sea asignado a una variable para poder usarlo.

Ejemplo:

<?php
// Esto pone en pantalla el número 11
echo 'El resultado de la suma es: ' . ( 5 + 6 ) ;
?>

Operadores matemáticos comunes

Ejemplo:

<?php
$resulta = 555;
// Esto pone en pantalla el número 555
echo $resulta;
?>

Por otra parte, como la asignación también es una expresión, tiene un resultado (el de la propia asignación) que es posible usar.

Ejemplos:

<?php
$resulta = ( $pectlinco = 555 );
// Esto pone en pantalla el numero 555
echo 'El resultado de la suma es: ' . $resulta ;
?>

<?php
// Esto pone en pantalla el numero 555
echo 'El resultado de la suma es: ' . (( $resulta = 552 ) + 3);
?>

Ejemplo:

<?php
$resulta = 555 + 23;
// Esto pone en pantalla el número 578
echo $resulta;
?>

Ejemplo:

<?php
$resulta = 555 - 22;
// Esto pone en pantalla el número 533
echo $resulta;
?>

En la suma y en la resta el primer operando podría omitirse, y funcionaría como si éste valiese cero.

Ejemplo:

<?php
$negatiffo = - 22;
$positiffo = + 33;
// Esto pone en pantalla los números -22 y 33
echo 'Resultados: ' . $negatiffo . ' y ' . $positiffo;
?>

Ejemplo:

<?php
$resulta = 555 * 22;
// Esto pone en pantalla el número 12210
echo $resulta;
?>

Ejemplo:

<?php
$resulta = 555 / 5;
// Esto pone en pantalla el número 111
echo $resulta;
?>

Ejemplo:

<?php
$resulta = 555 % 22;
// Esto pone en pantalla el número 5
// que es el resto de 555 entre 22
echo $resulta;
?>

Operadores especiales

Existen 2 operadores especiales para contar, que se usan frecuentemente para dar mayor velocidad al código.

Ejemplo:

<?php
$resulta = 22;
$resulta++;
// Esto pone en pantalla el número 23
echo $resulta;
?>

Ejemplo:

<?php
$resulta = 22;
$resulta--;
// Esto pone en pantalla el número 21
echo $resulta;
?>

Prioridad o precedencia en los cálculos

Cuando una formula es compleja es esencial conocer en qué orden se ejecutan las operaciones.

Existe una jerarquía por defecto en cuanto al orden de ejecución, que determina que las operaciones se ejecutan de izquierda a derecha, haciéndose en este orden: primero los incrementos y decrementos, después los restos de división ( % ), divisiones ( / ) y multiplicaciones ( * ), y después las restas ( - ) y las sumas ( + ).

Ejemplo:

<?php
// Esto pone en pantalla el número 16
$resulta = 1 + 5 * 3;
echo $resulta;
?>

Como se puede ver en el ejemplo, si ejecutamos las operaciones de izquierda a derecha, sin asignar prioridades, el resultado sería 18 pero, al ser la multiplicación prioritaria sobre la suma, la operación se realiza en 2 tiempos: 5 * 3 = 15 y después 15 + 1, dando un resultado de 16.

Por encima de las prioridades por defecto, podemos indicar el orden en el que queremos que se realicen los cálculos utilizando paréntesis, pues siempre se realizarán primero las operaciones contenidas en los paréntesis más interiores, después las de los más exteriores y por último las que estén fuera de ellos.

Ejemplo:

<?php
$resulta = (1 + 5) * 3;
// Esto pone en pantalla el número 18
echo $resulta;
?>

Funciones complementarias

Redondeos

Ejemplo:

<?php
$resulta_abajo = round (73.4);
$resulta_arriba = round (16.5);
// Esto pone en pantalla los números 73 17
echo $resulta_abajo . ' ' . $resulta_arriba;
?>

Ejemplo:

<?php
$resulta = floor (54.67);
// Esto pone en pantalla el número 54
echo $resulta;
?>

Ejemplo:

<?php
$resulta = ceil (35.12);
// Esto pone en pantalla el número 36.
echo $resulta;
?>

Números aleatorios

Los números aleatorios son utilizados en aplicaciones de juegos y para generar claves de seguridad. Para generarlos se suele utilizar como base el tiempo del ordenador, a nivel de microsegundos.

Ejemplo:

<?php
//Se fija base multiplicando por 1 millón.
srand(microtime() * 1000000);
// Se obtiene el número aleatorio
$aleatorio = rand();
// Esto pone en pantalla un número al azar, que
// al pulsar F5 irá cambiando.
echo $aleatorio;
?>

Existen muchas más funciones matemáticas, pero no las podremos ver todas en este curso.

Como referencia conviene saber que hay funciones para cambios de base, cálculos binarios, cálculos geométricos, conversiones de grados a radianes, logaritmos, hipérboles y precisiones arbitrarias.