Comprensión de las funciones matemáticas de PHP
Guía de funciones matemáticas PHP: redondeo, potencias, raíces, min/max, trigonometría, logaritmos, números aleatorios y constantes integradas.
PHP incluye un amplio conjunto de funciones matemáticas integradas que permiten realizar cálculos que van más allá de lo que los operadores aritméticos básicos (+ - * / %) pueden hacer por sí solos. Con ellas puedes redondear valores de punto flotante, calcular raíces cuadradas y potencias, trabajar con trigonometría y logaritmos, y generar números aleatorios — todo sin instalar ninguna extensión. Cada función mostrada aquí es parte del núcleo de PHP.
Este capítulo recorre las funciones que usarás con más frecuencia, agrupadas según su propósito, con una breve nota sobre cuándo es útil cada una. Si eres nuevo con los valores numéricos en PHP, lee primero PHP Numbers.
Operadores vs. Funciones
Para aritmética cotidiana, usa operadores — son más cortos y fáciles de leer:
<?php
echo 7 + 3; // 10
echo 7 % 3; // 1 (modulo: remainder)
echo 2 ** 10; // 1024 (exponentiation operator)
?>Recurre a las funciones matemáticas cuando necesites algo que los operadores no pueden expresar por sí solos — redondeo, raíces cuadradas, valores absolutos, trigonometría, logaritmos o números aleatorios. El operador ** y pow() hacen lo mismo; el resto de esta página cubre casos que no tienen equivalente en operadores.
Funciones de redondeo
Una de las operaciones matemáticas más comunes en PHP es redondear números a un lugar decimal específico. La función round se puede usar para redondear un número al entero más cercano o a un número específico de decimales. Por ejemplo, el siguiente código redondeará el número 3.14159 a dos decimales:
Ejemplo de la función round de PHP
Además de la función round, PHP también proporciona las funciones ceil y floor, que se pueden usar para redondear un número hacia arriba o hacia abajo al entero más cercano. Por ejemplo:
Ejemplos de las funciones ceil y floor de PHP
Cuándo usar cada una: round() redondea al valor más cercano (y acepta una precisión), ceil() siempre redondea hacia arriba, y floor() siempre redondea hacia abajo. Ten en cuenta que ceil() y floor() devuelven un float, por lo que ceil(3.1) es 4.0, no el entero 4. Un error común es que round() utiliza "redondeo hacia afuera del cero" por defecto, por lo que round(2.5) es 3 y round(-2.5) es -3.
Potencias y raíces
Usa pow() (o el operador **) para elevar un número a una potencia, y sqrt() para calcular una raíz cuadrada. abs() devuelve el valor absoluto (no negativo), lo cual es útil cuando solo importa la magnitud — por ejemplo, la distancia entre dos números.
Ejemplo de PHP con pow, sqrt y abs
<?php
echo pow(2, 8) . "\n"; // 256
echo 2 ** 8 . "\n"; // 256 (operator form)
echo sqrt(144) . "\n"; // 12
echo abs(-17) . "\n"; // 17
// Distance between two numbers, regardless of order:
echo abs(3 - 10) . "\n"; // 7
?>Min, Max y sumas
min() y max() devuelven el menor y el mayor de sus argumentos. Puedes pasarles una lista de valores o un único array. array_sum() y array_product() suman o multiplican todos los elementos de un array.
Ejemplo de PHP con min, max y array_sum
<?php
echo min(4, 2, 9, 1) . "\n"; // 1
echo max([4, 2, 9, 1]) . "\n"; // 9 (works on an array too)
$prices = [19.99, 5.50, 12.00];
echo array_sum($prices) . "\n"; // 37.49
echo array_product([2, 3, 4]) . "\n"; // 24
?>Funciones trigonométricas
PHP proporciona varias funciones trigonométricas, incluyendo sin, cos y tan, que se pueden usar para calcular el seno, coseno y tangente de un ángulo, respectivamente. Estas funciones pueden ser útiles para realizar cálculos relacionados con ángulos y distancias en espacios 2D y 3D. Ten en cuenta que estas funciones esperan ángulos en radianes, no en grados. Usa deg2rad() para convertir grados a radianes antes de pasarlos a estas funciones.
Ejemplo de PHP con sin, cos y tan
<?php
$angle = deg2rad(30);
$sine = sin($angle);
echo $sine . "\n";
// Output: 0.5
$cosine = cos($angle);
echo $cosine . "\n";
// Output: 0.866025
$tangent = tan($angle);
echo $tangent . "\n";
// Output: 0.577350
?>Funciones logarítmicas
PHP proporciona varias funciones logarítmicas, incluyendo log, log10 y exp, que se pueden usar para realizar diversas operaciones logarítmicas. La función log calcula el logaritmo natural de un número, mientras que la función log10 calcula el logaritmo en base 10 de un número. La función exp calcula el valor exponencial de un número.
Ejemplo de las funciones log, log10 y exp de PHP
<?php
$num = 10;
$natural_log = log($num);
echo $natural_log . "\n";
// Output: 2.30259
$log10 = log10($num);
echo $log10 . "\n";
// Output: 1
$exponential = exp($num);
echo $exponential . "\n";
// Output: 22026.465
?>Funciones misceláneas
Además de las funciones analizadas anteriormente, PHP proporciona otras funciones matemáticas que se pueden usar para diversos propósitos. Por ejemplo, la función abs se puede usar para calcular el valor absoluto de un número, mientras que la función pow se puede usar para calcular la potencia de un número.
Ejemplo de las funciones abs y pow de PHP
Para la división entera, usa intdiv(), y para el resto en punto flotante, usa fmod():
<?php
echo intdiv(17, 5) . "\n"; // 3 (integer division)
echo fmod(17.5, 5) . "\n"; // 2.5 (float remainder; % only works on ints)
?>Números aleatorios
Para generar números aleatorios, usa rand() o mt_rand() para propósitos generales, y random_int() cuando el valor deba ser criptográficamente seguro (contraseñas, tokens, códigos OTP). Los tres aceptan un mínimo y un máximo inclusivos.
Ejemplo de números aleatorios en PHP
<?php
$dice = rand(1, 6); // a number from 1 to 6
echo $dice . "\n";
$secure = random_int(1, 100); // cryptographically secure 1–100
echo $secure . "\n";
?>Dado que la salida cambia en cada ejecución, los números exactos anteriores serán diferentes cada vez. Usa random_int() cuando la aleatoriedad sea sensible a la seguridad — rand() es predecible y no debe usarse para nada secreto.
Constantes matemáticas
PHP define varias constantes integradas para valores comunes, de modo que no tengas que codificar aproximaciones manualmente:
<?php
echo M_PI . "\n"; // 3.1415926535898 (π)
echo M_E . "\n"; // 2.718281828459 (Euler's number)
echo M_SQRT2 . "\n";// 1.4142135623731 (√2)
// Area of a circle with radius 5:
echo M_PI * pow(5, 2) . "\n"; // 78.539816339745
?>La constante PHP_INT_MAX indica el entero más grande que tu plataforma puede almacenar; si lo superas, PHP convierte silenciosamente el resultado a un float. Consulta PHP Numbers y PHP Data Types para más información sobre los límites de enteros y flotantes.
Conclusión
El conjunto de herramientas matemáticas de PHP cubre desde el redondeo simple hasta la trigonometría, los logaritmos y los números aleatorios seguros — todo integrado en el lenguaje sin necesidad de ninguna extensión. Como regla general: usa operadores para aritmética básica, round/ceil/floor para controlar la precisión, min/max/array_sum para resumir colecciones, y random_int() cuando la aleatoriedad deba ser impredecible. Para mantener separado el formato de números para su visualización del cálculo, consulta number_format.