is_finite

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_finite判断浮点数是否是有效的有限值

说明

function is_finite(float $num): bool

返回指定的 num 是否是有限浮点数。

有限浮点数既不是 NAN (is_nan() )也不是无限的(is_infinite() )。

参数

num

要检查的 float

返回值

如果 num 不是 NAN INF 或 -INF ,那么为 true ,否则为 false

示例

示例 #1 is_finite() 示例

<?php
$float = 1.2345;
var_dump($float, is_finite($float));
$nan = sqrt(-1);
var_dump($nan, is_finite($nan));
$inf = 1e308 * 2;
var_dump($inf, is_finite($inf));
?>

以上示例会输出:

float(1.2345)
bool(true)
float(NAN)
bool(false)
float(INF)
bool(false)

参见

发现了问题?

了解如何改进此页面提交拉取请求报告一个错误
+添加备注

用户贡献的备注 1 note

up
11
Daniel Klein
8 years ago
(is_finite($float)) is equivalent to (!is_infinite($float) && !is_nan($float)), i.e. a number can only be one of finite, infinite and NaN. You don't need to check both is_infinite() and is_nan() to see if a number is invalid or out of range.
<?php
$finite = 42;
$infinite = log(0);
$nan = acos(2);
var_dump(is_finite($finite), is_infinite($finite), is_nan($finite)); // true, false, false
var_dump(is_finite($infinite), is_infinite($infinite), is_nan($infinite)); // false, true, false
var_dump(is_finite($nan), is_infinite($nan), is_nan($nan)); // false, false, true
?>
+添加备注

AltStyle によって変換されたページ (->オリジナル) /