PHP is_infinite() 函数

定义和用法

is_infinite() 函数用于判断一个浮点数是否为无穷大(正无穷 INF 或负无穷 -INF)。

提示:如需判断是否为有限值,请使用 is_finite();如需判断是否为非数字,请使用 is_nan()

语法

is_infinite(float $num): bool
参数 描述
num 必需。要检查的浮点数。

返回值

如果 num 是无穷大(INF 或 -INF),则返回 true,否则返回 false

PHP 版本

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

示例

示例 1:基本用法

<?php
$inf = INF;
$neg_inf = -INF;
$finite = 3.14;
$nan = NAN;

var_dump(is_infinite($inf));      // bool(true)
var_dump(is_infinite($neg_inf));  // bool(true)
var_dump(is_infinite($finite));   // bool(false)
var_dump(is_infinite($nan));      // bool(false) (NAN 不是无穷大)
?>

输出:

bool(true)
bool(true)
bool(false)
bool(false)

示例 2:实际应用 - 检查计算结果

<?php
function checkOperation($a, $b) {
    $result = $a / $b;
    if (is_infinite($result)) {
        echo "结果 $result 是无穷大(除零或溢出)<br>";
    } elseif (is_nan($result)) {
        echo "结果不是数字(0/0 或其他)<br>";
    } else {
        echo "结果 $result 是有限的<br>";
    }
}

checkOperation(10, 2);    // 5
checkOperation(10, 0);    // INF
checkOperation(0, 0);     // NAN
?>

输出:

结果 5 是有限的
结果 INF 是无穷大(除零或溢出)
结果不是数字(0/0 或其他)

相关函数

注意事项

重要:
  • is_infinite() 只对浮点数有意义。如果传入非浮点数,PHP 会先将其转换为浮点数后再判断。
  • 无穷大通常在除以零或数值溢出时产生。
  • 该函数在 PHP 8.0+ 中如果传入非数值类型参数会抛出 TypeError,而在之前版本中会发出警告。
  • INF 和 -INF 都会使 is_infinite() 返回 true,而 NAN 不会。