PHP pow() 函数

定义和用法

pow() 函数返回 baseexp 次幂。如果参数都是非负整数且结果可以用整数表示,则返回 int 类型,否则返回 float 类型。

提示:从 PHP 5.6 开始,可以使用 ** 运算符进行幂运算,例如 $base ** $exp

语法

pow(mixed $base, mixed $exp): mixed
参数 描述
base 必需。规定底数。
exp 必需。规定指数。

返回值

返回 baseexp 次幂。如果结果可以表示为整数,则返回 int 类型,否则返回 float 类型。如果 base 是负数且 exp 不是整数,则返回 NAN(非数字)。

PHP 版本

  • PHP 4+
  • PHP 5+
  • PHP 7+
  • PHP 8+

示例

示例 1:基本用法

<?php
echo pow(2, 3) . "<br>";   // 8
echo pow(5, 2) . "<br>";   // 25
echo pow(10, 0) . "<br>";  // 1
echo pow(4, -2) . "<br>";  // 0.0625 (1/16)
?>

输出:

8
25
1
0.0625

示例 2:使用浮点数指数

<?php
echo pow(9, 0.5) . "<br>";   // 3 (平方根)
echo pow(27, 1/3) . "<br>";  // 3 (立方根)
echo pow(2, 3.5) . "<br>";   // 约 11.313708498985 (2^3.5)
?>

输出:

3
3
11.313708498985

示例 3:负数的非整数指数(产生 NAN)

<?php
$result = pow(-2, 0.5);  // 负数开平方,无实数结果
if (is_nan($result)) {
    echo "pow(-2, 0.5) 结果为 NAN (非数字)";
} else {
    echo $result;
}
?>

输出:

pow(-2, 0.5) 结果为 NAN (非数字)

示例 4:实际应用 - 计算复利

<?php
// 复利公式 A = P(1 + r/n)^(nt)
function compoundInterest($principal, $rate, $timesPerYear, $years) {
    return $principal * pow(1 + $rate / $timesPerYear, $timesPerYear * $years);
}

$principal = 1000;
$rate = 0.05;
$timesPerYear = 12; // 每月复利
$years = 5;
$amount = compoundInterest($principal, $rate, $timesPerYear, $years);
echo "本金 $principal,年利率 $rate,$years 年后本息和为:" . round($amount, 2);
?>

输出:

本金 1000,年利率 0.05,5 年后本息和为:1283.36

相关函数

注意事项

重要:
  • 在 PHP 5.6 之前,如果指数运算结果太大导致溢出,会返回 INF(无穷大)。PHP 5.6+ 中溢出行为可能因平台而异。
  • 如果 base 是负数且 exp 不是整数,结果在数学上是复数,PHP 返回 NAN
  • 当两个参数都是非负整数且结果可以用 int 表示时,返回 int,否则返回 float
  • 传入非数值类型参数会导致警告(PHP 7+)或 TypeError(PHP 8+)。