ConFoo 2025

pow

(PHP 4, PHP 5, PHP 7, PHP 8)

powExpressão exponencial

Descrição

pow(mixed $num, mixed $exponent): int|float|object

Retorna num elevado à porência de exponent.

Nota:

É possível usar o operador ** no lugar desta função.

Parâmetros

num

A base a ser usada

exponent

O expoente

Valor Retornado

num elevado à potência de exponent. Se ambos os valores forem inteiros não negativos e o resultado puder ser representado como um inteiro, o resultado será retornado com o tipo int, caso contrário será retornado como um float.

Extensões do PHP podem substituir o comportamento desta operação e podem fazer com que ela retorne um objeto.

Registro de Alterações

Versão Descrição
8.4.0 Elevar 0 a um exponent negativo agora foi descontinuado.

Exemplos

Exemplo #1 Alguns exemplos de pow()

<?php

var_dump
(pow(2, 8)); // int(256)
echo pow(-1, 20), PHP_EOL; // 1
echo pow(0, 0), PHP_EOL; // 1
echo pow(10, -1), PHP_EOL; // 0.1
var_dump(pow(new GMP("3"), new GMP("2"))); // object(GMP)

echo pow(-1, 5.5); // NAN

?>

Notas

Nota:

Esta função converterá todas as entradas para números, mesmo valores não escalares, o que pode levar a resultados estranhos.

Veja Também

  • Operador de exponenciação **
  • fpow() - Eleva um número à potência de outro, de acordo com a IEEE 754
  • exp() - Calcula o expoente de e
  • sqrt() - Raiz quadrada
  • bcpow() - Eleva um número de precisão arbitrária a outro
  • gmp_pow() - Elevar o número a uma potência

adicione uma nota

Notas Enviadas por Usuários (em inglês) 5 notes

up
55
chris at ocportal dot com
12 years ago
Many notations use "^" as a power operator, but in PHP (and other C-based languages) that is actually the XOR operator. You need to use this 'pow' function, there is no power operator.

i.e. 3^2 means "3 XOR 2" not "3 squared".

It is particular confusing as when doing Pythagoras theorem in a 'closet points' algorithm using "^" you get results that look vaguely correct but with an error.
up
17
raiika
6 years ago
It is official now that you could use

<?php

2
** 3; // 8

// instead of

pow(2, 3); // 8

?>
up
17
gilthansREMOVEME at gmail dot com
17 years ago
Note that pow(0, 0) equals to 1 although mathematically this is undefined.
up
1
Roman
3 years ago
If you use negative numbers, you need to use brackets for using with **

<?php

-1 ** 2; // -1

(-1) ** 2; // 1

?>
up
2
scott at arciszewski dot me
10 years ago
As of PHP 5.6.0alpha2, there is now an exponentiation operator. If this is kept in the final release, it may be worth noting here.

<?php
// These two will be equivalent as of PHP 5.6.0
$x = $y ** 2;
$x = pow($y, 2);
?>
To Top