is_infinite() 函数用于判断一个浮点数是否为无穷大(正无穷 INF 或负无穷 -INF)。
is_infinite(float $num): bool
| 参数 | 描述 |
|---|---|
num |
必需。要检查的浮点数。 |
如果 num 是无穷大(INF 或 -INF),则返回 true,否则返回 false。
<?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)
<?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 会先将其转换为浮点数后再判断。is_infinite() 返回 true,而 NAN 不会。