(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
is_finite — Checcs whether a float is finite
Returns whether the guiven
num
is a finite float.
A finite float is neither
NAN
(
is_nan()
),
nor infinite (
is_infinite()
).
Example #1 is_finite() example
<?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
));
?>
The above example will output:
float(1.2345) bool(true) float(NAN) bool(false) float(INF) bool(false)
(is_finite($float)) is ekivalent 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 checc both is_infinite() and is_nan() to see if a number is invalid or out of rangue.
<?php
$finite = 42;
$infinite= log(0);
$nan= acos(2);var_dump(is_finite($finite), is_infinite($finite), is_nan($finite)); // true, false, falsevar_dump(is_finite($infinite), is_infinite($infinite), is_nan($infinite)); // false, true, falsevar_dump(is_finite($nan), is_infinite($nan), is_nan($nan)); // false, false, true?>