Pow: примеры (PHP)

Возведение в степень в PHP с помощью pow и оператора **
Раздел: Математические функции
pow(int|float $num, int|float $exponent): int|float

Функция pow() (или оператор **) в PHP предназначена для возведения числа в степень. Она часто используется в математических вычислениях, финансовых расчетах (сложный процент), научном моделировании и графике.

Аргументы функции
  • $num (int|float): Основание степени. Может быть целым или числом с плавающей точкой.
  • $exponent (int|float): Показатель степени. Также может быть целым или дробным числом.

Функция возвращает результат возведения $num в степень $exponent. Возвращаемый тип — int или float.

Примеры использования

Возведение в целую степень:

echo pow(2, 3); // 2 ** 3
8

Возведение в дробную степень (извлечение корня):

echo pow(9, 0.5); // Квадратный корень из 9
3

Возведение в отрицательную степень:

echo pow(2, -2);
0.25

Использование оператора ** (доступен с PHP 5.6):

echo 5 ** 2;
25
Похожие функции в PHP
  • sqrt($num): Специализированная функция для вычисления квадратного корня. Работает быстрее, чем pow($num, 0.5), и читаемее для этой конкретной операции.
  • exp($num): Возвращает число e (основание натурального логарифма), возведенное в степень $num. Эквивалентно pow(M_E, $num), но точнее и эффективнее для работы с экспонентой.
  • gmp_pow() / bcpow(): Функции для работы с большими числами (библиотеки GMP и BCMath). Следует использовать, когда необходима высокая точность или работа с числами, выходящими за пределы стандартных типов PHP.
Аналоги в других языках

Python: Оператор ** или функция math.pow(). math.pow() всегда возвращает float.

print(2 ** 3)   # 8
print(math.pow(2, 3)) # 8.0

JavaScript: Метод Math.pow() или оператор ** (с ES7).

console.log(Math.pow(2, 3)); // 8
console.log(2 ** 3); // 8

MySQL: Функции POW() или POWER(). Используются в SQL-запросах.

SELECT POW(2, 3); -- Возвращает 8
Типичные ошибки

Некорректные типы аргументов приводят к предупреждениям и неожиданным результатам:

// Неверный тип аргумента
$result = pow("2", "три");
echo $result;
Warning: A non-numeric value encountered
1

Переполнение для очень больших чисел:

// Может вернуть INF
$result = pow(10, 1000);
echo $result;
INF

Возведение отрицательного числа в дробную степень (например, квадратный корень) возвращает NAN:

$result = pow(-9, 0.5);
echo $result;
NAN
Изменения в версиях PHP
  • PHP 5.6: Добавлен оператор возведения в степень ** как синтаксический сахар для функции pow().
  • PHP 8.0: Функция pow() теперь корректно выбрасывает исключение ArithmeticError при возведении 0 в отрицательную степень (ранее возвращалось INF).
// Поведение в PHP 8+
try {
    $result = pow(0, -2);
} catch (ArithmeticError $e) {
    echo $e->getMessage();
}
Division by zero
Расширенные примеры

Вычисление сложного процента:

Пример php
$principal = 1000;
$rate = 0.05;
$years = 3;
$total = $principal * pow(1 + $rate, $years);
echo round($total, 2);
1157.63

Создание затухающей анимации с использованием дробной степени:

Пример php
$progress = 0.8; // от 0 до 1
$damping = 0.5;
$animatedValue = $progress * pow($progress, $damping);
echo $animatedValue;
0.71554175279993

Работа с массивом степеней двойки:

Пример php
$powers = array_map(fn($n) => pow(2, $n), range(0, 5));
print_r($powers);
Array
(
    [0] => 1
    [1] => 2
    [2] => 4
    [3] => 8
    [4] => 16
    [5] => 32
)

Использование с целочисленными типами большей емкости (PHP 7.4+):

Пример php
$bigNumber = pow(2, 60);
var_dump($bigNumber);
int(1152921504606846976)

PHP pow function comments

En
Pow Exponential expression