W3docs

log()

Aprenda a usar a função log() no PHP para calcular logaritmos naturais e em qualquer base, com exemplos práticos e casos especiais.

A função log() no PHP retorna o logaritmo de um número. Por padrão, ela retorna o logaritmo natural — o logaritmo na base e (número de Euler, aproximadamente 2.71828) — mas é possível passar um segundo argumento para calcular o logaritmo em qualquer base.

Um logaritmo responde à pergunta "a que potência a base deve ser elevada para produzir este número?" Por exemplo, log(8, 2) é 3, pois 2 elevado à potência de 3 é igual a 8. Esta página aborda a sintaxe, bases comuns, comportamento em casos especiais e um uso prático.

Sintaxe

log(float $num, float $base = M_E): float
ParâmetroDescrição
$numO número cujo logaritmo você deseja. Deve ser positivo para um resultado real.
$baseOpcional. A base logarítmica. O padrão é M_E (≈ 2.71828), resultando no logaritmo natural.

A função retorna um float: o logaritmo de $num na base especificada.

Exemplo básico: logaritmo natural

Ao chamar log() com um único argumento, você obtém o logaritmo natural (base e):

php— editable, runs on the server

Usando uma base personalizada

Passe um segundo argumento para calcular o logaritmo em uma base diferente. Isso é útil para logaritmos na base 2 (binário) ou na base 10 (decimal):

<?php
echo log(100, 10), "\n"; // 2  (10^2 = 100)
echo log(8, 2), "\n";    // 3  (2^3 = 8)
echo log(1, 5), "\n";    // 0  (any base^0 = 1)
?>

Para a base 10 especificamente, o PHP também oferece a função dedicada log10(), e para valores pequenos próximos a 1 existe log1p(), que é mais precisa do que log(1 + x).

Casos especiais a observar

O logaritmo matemático só está definido para números positivos, portanto log() retorna valores float especiais fora desse intervalo:

<?php
echo log(1), "\n";   // 0   — log of 1 is always 0
echo log(0), "\n";   // -INF — log of 0 is negative infinity
echo log(-5), "\n";  // NAN — log of a negative number is "not a number"
?>

Como NAN e INF se propagam silenciosamente em operações aritméticas, valide a entrada antes de chamar log():

<?php
$value = -5;

if ($value > 0) {
    echo log($value);
} else {
    echo "log() requires a positive number";
}
// Outputs: log() requires a positive number
?>

É possível detectar esses resultados com is_nan() e is_infinite() caso um valor chegue a log() sem verificação.

Um caso de uso prático

Logaritmos são comuns quando você precisa saber quantos dígitos um número tem, ou para escalar dados. Por exemplo, o número de dígitos decimais de um inteiro positivo é floor(log10($n)) + 1:

<?php
$n = 12345;
$digits = (int) floor(log10($n)) + 1;

echo "{$n} has {$digits} digits"; // Outputs: 12345 has 5 digits
?>

Funções relacionadas

  • log10() — logaritmo na base 10.
  • log1p()log(1 + x) preciso para valores pequenos de x.
  • exp() — o inverso do logaritmo natural (e elevado a uma potência).
  • pow() — eleva um número a uma potência.
  • sqrt() — raiz quadrada.
  • Funções Matemáticas PHP — visão geral de todos os helpers matemáticos.

Conclusão

A função log() é uma ferramenta confiável para cálculos logarítmicos em PHP. Com seu segundo argumento opcional, ela suporta qualquer base, enquanto o padrão de logaritmo natural cobre a necessidade mais comum. Lembre-se dos casos especiais — log(0) é -INF e log() de um número negativo é NAN — e valide a entrada para manter seus cálculos robustos.

Prática

Prática
O que log(8, 2) retorna em PHP?
O que log(8, 2) retorna em PHP?
Was this page helpful?