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)
(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
.
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.
@ 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.