pow()
(PHP 4, PHP 5, PHP 7)
指数表达式
说明
pow(number$base,number$exp):number
返回$base的$exp次方的幂。如果可能,本函数会返回integer。
参数
- $base
The base to use
- $exp
指数
返回值
$base的$exp次方的幂。 If both arguments are non-negative integers and the result can be represented as an integer, the result will be returned withintegertype, otherwise it will be returned as afloat.
更新日志
版本 | 说明 |
---|---|
4.2.0 | 如果不能计算幂,将发出一条警告,pow()将返回FALSE 。pow()开始不产生任何的警告。 |
4.0.6 | 如果可能函数现在会返回integer的结果,之前总是返回float,For older versions, you may receive a bogus result for complex numbers. |
范例
Example #1pow()的一些例子
<?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 ?>
注释
Note:本函数会转换所有输入为数字,即使是非标量值,会导致怪异的(weird)结果。
参见
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.
Note that pow(0, 0) equals to 1 although mathematically this is undefined.
It is official now that you could use <?php 2 ** 3; // 8 // instead of pow(2, 3); // 8 ?>
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); ?>
funny thing number_format(pow(2, 1023)); gives a long number but number_format(pow(2, 1024)); gives inf