@ david,
That will return true for any string ending with "INF".
I think substr("$value",0,3) would be more appropriate.
(PHP 4 >= 4.2.0, PHP 5, PHP 7)
is_infinite — Finds whether a value is infinite
$val
)
Returns TRUE
if val
is infinite (positive or
negative), like the result of log(0) or any value too
big to fit into a float on this platform.
val
The value to check
TRUE
if val
is infinite, else FALSE
.
@ david,
That will return true for any string ending with "INF".
I think substr("$value",0,3) would be more appropriate.
fastest version to php <4.2:
<?php function is_infinite($v){$v=$v>>0;return -9e1000==$v||$v==9e1000;}; ?>
the $v=$v>>0; is just to ensure it is a number and its not mandatory.
effectively, the function can be reduced to:
<?php function is_infinite($v){return -9e1000==$v||$v==9e1000;}; ?>
this works because any number that is too big or too small for a float is considered to be infinite or -infinite.
PHP_INT_MAX is The largest integer supported in this build of PHP. Usually int(2147483647). Available since PHP 4.4.0 and PHP 5.0.5
If you have PHP lower than 4.2 you can simulate the behaviour:
function is_infinite($value) {
return (substr("$value",-3) == "INF");
}
(tested on php 4.1.2)
Actually any string ending in INF is more appropriate than any string beginning with INF. Since negative infinity evaluates to "-INF" but it is still infinite. However in either case the STRING "INF" is not infinite, only a float that converts to "INF" or "-INF" is infinite.
A more appropriate function might be:
<?php
if (!is_defined('is_infinite')) { function is_infinite($val) {
return (is_float($val) and ("$val"=='INF' or "$val"=='-INF'));
} }
?>
* However the above function is untested.