is_infinite

(PHP 4 >= 4.2.0, PHP 5)

is_infinitePrüft ob ein Wert unendlich ist

Beschreibung

bool is_infinite ( float $val )

Die Funktion prüft ob ein Wert unendlich, oder besser nicht-endlich ist. Als nicht endlich gelten dabei Ergebnisse von Berechnungen wie log(0) ebenso wie Werte, die schlicht nur zu groß sind, um noch mit dem float Typ der jeweiligen Plattform erfasst zu werden. Es wird dabei nicht zwischen positiv unendlich und negativ unendlich unterschieden.

Parameter-Liste

val

Der zu prüfende Wert

Rückgabewerte

TRUE wenn val nicht endlich ist, sonst FALSE.

Siehe auch

  • is_finite() - Prüft auf einen gültigen endlichen Wert
  • is_nan() - Prüft ob ein Wert keine Zahl ist

add a note add a note

User Contributed Notes 5 notes

up
1
david(@t)nirvanis(d@t)org
10 years ago
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)
up
1
Anonymous
8 years ago
@ david,

That will return true for any string ending with "INF".
I think substr("$value",0,3) would be more appropriate.
up
0
Anonymous
2 years ago
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
up
0
stangelanda at arrowquick dot com
7 years ago
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.
up
-1
espertalhao04 at hotmail dot com
1 year ago
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.
To Top