PHP 8.4.0 RC4 available for testing

pow

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

pow指数表达式

说明

pow(mixed $num, mixed $exponent): int|float|object

返回 numexponent 次方的幂。

注意:

可以使用 ** 运算符代替。

参数

num

底数

exponent

指数

返回值

numexponent 次方。如果两个参数都是非负整数且结果可以用整数表示,则返回 int 类型,否则返回 float

PHP 扩展可能会覆盖此操作的行为,使其返回一个对象。

示例

示例 #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

?>

注释

注意:

本函数会转换所有输入为数字,甚至是非标量值,将会导致怪异的结果。

参见

添加备注

用户贡献的备注 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
17 years ago
Note that pow(0, 0) equals to 1 although mathematically this is undefined.
up
1
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
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