pow

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

powВозведение в степень

Описание

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

Возвращает num, возведённое в степень exponent.

Замечание:

Вместо функции можно использовать оператор **.

Список параметров

num

Основание

exponent

Показатель степени

Возвращаемые значения

Основание num возведённое в степень exponent. Если оба аргумента - неотрицательные целые и результат может быть представлен как целое, то возвращаемый результат будет типа int. В ином случае результат будет типа float.

Примеры

Пример #1 Примеры использования pow()

<?php

var_dump
(pow(2, 8)); // int(256)
echo pow(-1, 20); // 1
echo pow(0, 0); // 1
echo pow(10, -1); // 0.1

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

Примечания

Замечание:

Функция преобразует все входные значения, даже нескалярные, к числовым, что может привести к странным результатам.

Смотрите также

  • exp() - Вычисляет степень числа e
  • sqrt() - Квадратный корень
  • bcpow() - Возведение в степень чисел с произвольной точностью
  • gmp_pow() - Возводит число в степень

add a note

User Contributed Notes 6 notes

up
49
chris at ocportal dot com
11 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
4 years ago
It is official now that you could use

<?php

2
** 3; // 8

// instead of

pow(2, 3); // 8

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

<?php

-1 ** 2; // -1

(-1) ** 2; // 1

?>
up
-1
scott at arciszewski dot me
9 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);
?>
up
-6
jaxx1rr at gmail dot com
3 years ago
funny thing

number_format(pow(2, 1023));
gives a long number

but number_format(pow(2, 1024));
gives inf
To Top