PHP 8.4.2 Released!

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).

PHP-модули иногда переопределяют поведение операции и заставляют её возвращать объект.

Список изменений

Версия Описание
8.4.0 Передача в аргументе exponent отрицательного значения для возведения 0 в отрицательную степень устарела.

Примеры

Пример #1 Примеры возведения числа в степень функцией 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

?>

Примечания

Замечание:

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

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

  • ** — Оператор возведения в степень
  • fpow() - Возводит число в степень по правилам стандарта IEEE 754
  • exp() - Вычисляет степень числа e
  • sqrt() - Извлекает квадратный корень
  • bcpow() - Возводит в степень число произвольной точности
  • gmp_pow() - Возводит число в степень

Добавить

Примечания пользователей 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
18 years ago
Note that pow(0, 0) equals to 1 although mathematically this is undefined.
up
1
Roman
4 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