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 note add a note

User Contributed Notes 6 notes

up
39
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
13
gilthansREMOVEME at gmail dot com
17 years ago
Note that pow(0, 0) equals to 1 although mathematically this is undefined.
up
7
raiika
5 years ago
It is official now that you could use

<?php

2
** 3; // 8

// instead of

pow(2, 3); // 8

?>
up
3
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);
?>
up
0
Roman
3 years ago
If you use negative numbers, you need to use brackets for using with **

<?php

-1 ** 2; // -1

(-1) ** 2; // 1

?>
up
0
jaxx1rr at gmail dot com
4 years ago
funny thing

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

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