PHP Conference Japan 2024

pow

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

pow指数表达式

描述

pow(混合 $num, 混合 $exponent): int|float|对象

返回 numexponent 次幂。

注意:

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

参数

num

使用的底数

exponent

指数

返回值

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

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

变更日志

版本 描述
8.4.0 0 提升到负 exponent 现在已弃用。

示例

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

?>

备注

注意:

此函数会将所有输入转换为数字,即使是非标量值,也可能导致奇怪的结果。

参见

  • 指数运算符 **
  • fpow() - 根据 IEEE 754 将一个数字提升到另一个数字的幂
  • exp() - 计算 e 的指数
  • sqrt() - 平方根
  • bcpow() - 将任意精度数字提升到另一个数字的幂
  • gmp_pow() - 将数字提升到幂

添加注释

用户贡献的注释 5 条注释

chris at ocportal dot com
12 年前
许多表示法使用 "^" 作为幂运算符,但在 PHP(和其他基于 C 的语言)中,它实际上是 XOR 运算符。您需要使用此“pow”函数,没有幂运算符。

例如,3^2 表示“3 XOR 2”,而不是“3 的平方”。

在使用“^”的“最近点”算法中进行勾股定理计算时,它尤其令人困惑,您得到的结果看起来大致正确,但存在错误。
raiika
6 年前
现在正式可以使用

<?php

2
** 3; // 8

// 代替

pow(2, 3); // 8

?>
gilthansREMOVEME at gmail dot com
17 年前
请注意,pow(0, 0) 等于 1,尽管在数学上这是未定义的。
Roman
3 年前
如果使用负数,则需要使用括号与 ** 一起使用

<?php

-1 ** 2; // -1

(-1) ** 2; // 1

?>
scott at arciszewski dot me
10 年前
从 PHP 5.6.0alpha2 开始,现在有一个指数运算符。如果这保留在最终版本中,则可能值得在此处注意。

<?php
// 从 PHP 5.6.0 开始,这两个将是等效的
$x = $y ** 2;
$x = pow($y, 2);
?>
To Top