W3docs

Entendendo as Funções Matemáticas do PHP

Guia das funções matemáticas do PHP: arredondamento, potências, raízes, min/max, trigonometria, logaritmos, números aleatórios e constantes.

O PHP vem com um grande conjunto de funções matemáticas integradas que permitem realizar cálculos além do que os operadores aritméticos básicos (+ - * / %) conseguem fazer por si só. Com elas, é possível arredondar valores de ponto flutuante, calcular raízes quadradas e potências, trabalhar com trigonometria e logaritmos, e gerar números aleatórios — tudo isso sem instalar nenhuma extensão. Todas as funções apresentadas aqui fazem parte do núcleo do PHP.

Este capítulo percorre as funções que você usará com mais frequência, agrupadas por finalidade, com uma breve nota sobre quando cada uma é útil. Se você não está familiarizado com valores numéricos no PHP, leia primeiro PHP Numbers.

Operadores vs. Funções

Para aritmética do dia a dia, use operadores — eles são mais curtos e mais fáceis de ler:

<?php
echo 7 + 3;   // 10
echo 7 % 3;   // 1  (modulo: remainder)
echo 2 ** 10; // 1024 (exponentiation operator)
?>

Recorra às funções matemáticas quando precisar de algo que os operadores não conseguem expressar por si só — arredondamento, raízes quadradas, valores absolutos, trigonometria, logaritmos ou números aleatórios. O operador ** e pow() fazem a mesma coisa; o restante desta página cobre casos sem equivalente em operadores.

Funções de Arredondamento

Uma das operações matemáticas mais comuns no PHP é arredondar números para uma casa decimal específica. A função round pode ser usada para arredondar um número para o inteiro mais próximo ou para um número específico de casas decimais. Por exemplo, o código a seguir arredonda o número 3.14159 para duas casas decimais:

Exemplo da função round do PHP

php— editable, runs on the server

Além da função round, o PHP também disponibiliza as funções ceil e floor, que podem ser usadas para arredondar um número para cima ou para baixo até o inteiro mais próximo. Por exemplo:

Exemplos das funções ceil e floor do PHP

php— editable, runs on the server

Quando usar cada uma: round() arredonda para o valor mais próximo (e aceita uma precisão), ceil() sempre arredonda para cima, e floor() sempre arredonda para baixo. Note que ceil() e floor() retornam um float, portanto ceil(3.1) é 4.0, não o inteiro 4. Um erro comum é que round() usa "arredondar metade para longe do zero" por padrão, então round(2.5) é 3 e round(-2.5) é -3.

Potências e Raízes

Use pow() (ou o operador **) para elevar um número a uma potência, e sqrt() para calcular a raiz quadrada. abs() retorna o valor absoluto (não negativo), o que é útil quando você se importa apenas com a magnitude — por exemplo, a distância entre dois números.

Exemplo de pow, sqrt e abs no PHP

<?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 e Somas

min() e max() retornam o menor e o maior valor entre os argumentos. Você pode passar uma lista de valores ou um único array. array_sum() e array_product() somam ou multiplicam todos os elementos de um array.

Exemplo de min, max e array_sum no PHP

<?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
?>

Funções Trigonométricas

O PHP fornece diversas funções trigonométricas, incluindo sin, cos e tan, que podem ser usadas para calcular o seno, o cosseno e a tangente de um ângulo, respectivamente. Essas funções são úteis para realizar cálculos relacionados a ângulos e distâncias em espaços 2D e 3D. Note que essas funções esperam ângulos em radianos, não em graus. Use deg2rad() para converter graus em radianos antes de passá-los para essas funções.

Exemplo de sin, cos e tan no PHP

<?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

?>

Funções Logarítmicas

O PHP fornece diversas funções logarítmicas, incluindo log, log10 e exp, que podem ser usadas para realizar várias operações logarítmicas. A função log calcula o logaritmo natural de um número, enquanto log10 calcula o logaritmo na base 10. A função exp calcula o valor exponencial de um número.

Exemplo das funções log, log10 e exp no 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
?>

Funções Diversas

Além das funções discutidas acima, o PHP disponibiliza diversas outras funções matemáticas para diferentes finalidades. Por exemplo, a função abs pode ser usada para calcular o valor absoluto de um número, enquanto a função pow pode ser usada para calcular a potência de um número.

Exemplo das funções abs e pow no PHP

php— editable, runs on the server

Para divisão inteira, use intdiv(), e para o restante em ponto flutuante, use 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 Aleatórios

Para gerar números aleatórios, use rand() ou mt_rand() para fins gerais, e random_int() quando o valor precisar ser criptograficamente seguro (senhas, tokens, códigos OTP). As três funções aceitam um mínimo e um máximo inclusivos.

Exemplo de número aleatório no 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";
?>

Como a saída muda a cada execução, os números exatos acima serão diferentes a cada vez. Use random_int() sempre que a aleatoriedade for sensível à segurança — rand() é previsível e não deve ser usado para nada secreto.

Constantes Matemáticas

O PHP define diversas constantes integradas para valores comuns, para que você não precise codificar aproximações 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
?>

A constante PHP_INT_MAX informa o maior inteiro que sua plataforma suporta; ao ultrapassá-lo, o PHP converte silenciosamente o resultado para float. Consulte PHP Numbers e PHP Data Types para mais informações sobre os limites de inteiros e floats.

Conclusão

O conjunto de ferramentas matemáticas do PHP cobre desde arredondamento simples até trigonometria, logaritmos e números aleatórios seguros — tudo integrado à linguagem sem necessidade de extensão. Como regra geral: use operadores para aritmética simples, round/ceil/floor para controlar a precisão, min/max/array_sum para resumir coleções, e random_int() sempre que a aleatoriedade precisar ser imprevisível. Para manter a formatação de números para exibição separada do cálculo, veja number_format.

Prática

Prática
No PHP, quais funções são usadas para encontrar os valores mínimo e máximo entre números fornecidos?
No PHP, quais funções são usadas para encontrar os valores mínimo e máximo entre números fornecidos?
Was this page helpful?