略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: pow

2024-12-24

pow

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

pow指数表达式

说明

pow(number $base, number $exp): number

返回 baseexp 次方的幂。如果可能,本函数会返回 integer

参数

base

The base to use

exp

指数

返回值

baseexp 次方的幂。 If both arguments are non-negative integers and the result can be represented as an integer, the result will be returned with integer type, otherwise it will be returned as a float.

更新日志

版本 说明
4.2.0 如果不能计算幂,将发出一条警告,pow() 将返回 falsepow() 开始不产生任何的警告。
4.0.6 如果可能函数现在会返回 integer 的结果,之前 总是返回 float,For older versions, you may receive a bogus result for complex numbers.

范例

示例 #1 pow() 的一些例子

<?php

var_dump
(pow(28)); // int(256)
echo pow(-120); // 1
echo pow(00); // 1

echo pow(-15.5); // PHP >4.0.6  NAN
echo pow(-15.5); // PHP <=4.0.6 1.#IND
?>

注释

注意:

本函数会转换所有输入为数字,即使是非标量值,会导致怪异的(weird)结果。

参见

add a noteadd a note

User Contributed Notes 6 notes

up
44
chris at ocportal dot com
10 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
16
raiika
3 years ago
It is official now that you could use

<?php

2
** 3; // 8

// instead of

pow(2, 3); // 8

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

<?php

-1 ** 2; // -1

(-1) ** 2; // 1

?>
up
3
scott at arciszewski dot me
8 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
-3
jaxx1rr at gmail dot com
2 years ago
funny thing

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

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

官方地址:https://www.php.net/manual/en/function.pow.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3