W3docs

pow()

Aprenda a função pow() no PHP, usada para elevar um número a uma potência, com exemplos e casos especiais.

A função pow() eleva um número a uma potência — ou seja, calcula base multiplicado por si mesmo exponent vezes. Esta página aborda sua sintaxe, o tipo de valor que retorna, como difere do operador **, e os casos especiais (expoentes negativos, fracionários e zero) que costumam confundir as pessoas.

Sintaxe

pow(int|float $base, int|float $exponent): int|float|object
  • $base — o número a ser elevado.
  • $exponent — a potência à qual a base será elevada.

A função retorna $base elevado à potência de $exponent. O tipo do resultado depende das entradas: se ambos os argumentos forem inteiros não negativos e o resultado couber em um inteiro, um int é retornado; caso contrário, um float é retornado.

Exemplo básico

php— editable, runs on the server

Aqui elevamos 2 à potência de 3, armazenamos o resultado e o exibimos. Como ambos os argumentos são inteiros não negativos, pow() retorna o inteiro 8.

pow() vs. o operador **

Desde o PHP 5.6, o operador de exponenciação ** faz exatamente a mesma coisa que pow() e é geralmente preferido por ser mais legível:

<?php
echo pow(2, 10);  // 1024
echo "\n";
echo 2 ** 10;     // 1024
?>

Ambos produzem 1024. O operador ** é associativo à direita, portanto 2 ** 3 ** 2 é avaliado como 2 ** (3 ** 2), que é 512 — não 64. Veja operadores PHP para mais informações sobre precedência de operadores.

Expoentes negativos, fracionários e zero

pow() não se limita a expoentes inteiros positivos.

<?php
echo pow(2, -2);   // 0.25  -> 1 / (2 * 2)
echo "\n";
echo pow(16, 0.5); // 4     -> the square root of 16
echo "\n";
echo pow(5, 0);    // 1     -> any number to the power 0 is 1
echo "\n";
echo pow(-2, 3);   // -8    -> a negative base with an integer exponent
?>

Comportamentos principais:

  • Um expoente negativo retorna o recíproco, portanto o resultado é um float.
  • Um expoente fracionário calcula uma raiz: elevar a 0.5 equivale à raiz quadrada, 1/3 à raiz cúbica. Para raízes quadradas especificamente, sqrt() é mais claro.
  • Qualquer base elevada à potência 0 é 1.
  • Uma base negativa elevada a um expoente não inteiro não tem resultado real; pow() retorna NAN (Não É Um Número) nesse caso.

Armadilhas

  • Resultados grandes transbordam para float. pow(2, 63) ultrapassa PHP_INT_MAX em um sistema de 64 bits, então o resultado silenciosamente se torna um float e perde precisão. Use sabendo que o tipo do resultado pode mudar.
  • NAN para raízes impossíveis. pow(-8, 1/3) retorna NAN em vez de -2, porque o PHP avalia como uma potência de número real.
  • Strings são convertidas. pow("2", "3") funciona e retorna 8, mas depender da conversão de strings é frágil — passe números.

Funções relacionadas

  • sqrt() — raiz quadrada, equivalente a pow($n, 0.5).
  • abs() — valor absoluto, útil antes de calcular uma potência fracionária de um número possivelmente negativo.
  • intdiv() — divisão inteira.
  • Funções matemáticas do PHP — visão geral do conjunto de ferramentas numéricas do PHP.

Conclusão

pow() (ou o operador equivalente **) eleva um número a uma potência e é um recurso fundamental em qualquer código PHP matemático. Lembre-se de que o tipo de retorno pode mudar de int para float dependendo dos argumentos, que bases negativas com expoentes fracionários resultam em NAN, e que resultados muito grandes transbordam para floats.

Prática

Prática
Qual é a funcionalidade da função 'pow' no PHP?
Qual é a funcionalidade da função 'pow' no PHP?
Was this page helpful?