pow
(PHP 4, PHP 5)
pow — Возведение в степень
Список параметров
-
base
-
Основание
-
exp
-
Показатель степени
Возвращаемые значения
Основание base
возведенное в степень exp
.
Если оба аргумента - неотрицательные целые и результат может быть представлен как целое,
то возвращаемый результат будет типа integer. В ином случае результат будет
типа float.
Список изменений
Версия | Описание |
---|---|
4.2.0 | PHP не вызывает предупреждение, даже если значение не может быть вычислено. |
4.0.6 | Если возможно, то функция возвращает результат как integer, ранее результат всегда возвращался как float. В ранних версиях , для комплексных чисел мог быть возвращен фиктивный результат. |
Примеры
Пример #1 Примеры использования pow()
<?php
var_dump(pow(2, 8)); // int(256)
echo pow(-1, 20); // 1
echo pow(0, 0); // 1
echo pow(-1, 5.5); // PHP >4.0.6 NAN
echo pow(-1, 5.5); // PHP <=4.0.6 1.#IND
?>
Примечания
Замечание:
Функция преобразует все входные значения, даже не-скалярные, к числовым, что может привести к странным results.
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Математические расширения
- Математические функции
- abs
- acos
- acosh
- asin
- asinh
- atan2
- atan
- atanh
- base_convert
- bindec
- ceil
- cos
- cosh
- decbin
- dechex
- decoct
- deg2rad
- exp
- expm1
- floor
- fmod
- getrandmax
- hexdec
- hypot
- intdiv
- is_finite
- is_infinite
- is_nan
- lcg_value
- log10
- log1p
- log
- max
- min
- mt_getrandmax
- mt_rand
- mt_srand
- octdec
- pi
- pow
- rad2deg
- rand
- round
- sin
- sinh
- sqrt
- srand
- tan
- tanh
Коментарии
Note that pow(0, 0) equals to 1 although mathematically this is undefined.
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.
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);
?>
It is official now that you could use
<?php
2 ** 3; // 8
// instead of
pow(2, 3); // 8
?>
If you use negative numbers, you need to use brackets for using with **
<?php
-1 ** 2; // -1
(-1) ** 2; // 1
?>