(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
is_finite —Checks whether a float is finite
Returns whether the givennum
is a finite float.
A finite float is neitherNAN
(is_nan()), nor infinite (is_infinite()).
num
Thefloat to check
Example #1is_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 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
?>