Signatur
Beschreibung
is_infinite() gibt true zurück, wenn der übergebene Wert positiv oder negativ unendlich ist. Unendlichkeit entsteht in PHP typischerweise durch mathematische Operationen, die den darstellbaren Bereich von Gleitkommazahlen überschreiten, z. B. log(0), pow(10, 1000) oder Division durch sehr kleine Zahlen.
Die Funktion ist das Gegenstück zu is_finite() und ergänzt is_nan(), das auf Not a Number (NaN) prüft. Zusammen ermöglichen diese drei Funktionen eine vollständige Validierung von Gleitkommazahlen vor ihrer weiteren Verwendung in Berechnungen oder Ausgaben.
In der Praxis ist is_infinite() besonders nützlich, wenn Ergebnisse aus mathematischen Berechnungen (z. B. Logarithmen, Exponentialfunktionen, physikalische Simulationen) vor der Weiterverarbeitung auf Plausibilität geprüft werden müssen, um unerwartetes Verhalten oder Fehler zu vermeiden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $num Pflicht | float | Die zu prüfende Gleitkommazahl. Typischerweise das Ergebnis einer mathematischen Operation, das möglicherweise INF oder -INF sein könnte. |
Rückgabewert
true zurück, wenn num positiv unendlich (INF) oder negativ unendlich (-INF) ist, andernfalls false.Beispiele
Grundlegende Verwendung mit INF und -INF
<?php
var_dump(is_infinite(INF)); // true
var_dump(is_infinite(-INF)); // true
var_dump(is_infinite(1.0)); // false
var_dump(is_infinite(NAN)); // false (NaN ist nicht unendlich)
Prüfung von Berechnungsergebnissen vor Weiterverarbeitung
<?php
function sichererLogarithmus(float $wert): string {
$ergebnis = log($wert);
if (is_infinite($ergebnis)) {
return 'Fehler: Ergebnis ist unendlich (Eingabe war wahrscheinlich 0 oder negativ).';
}
if (is_nan($ergebnis)) {
return 'Fehler: Ergebnis ist keine gültige Zahl.';
}
return 'Logarithmus: ' . $ergebnis;
}
echo sichererLogarithmus(10) . PHP_EOL; // Gültiger Wert
echo sichererLogarithmus(0) . PHP_EOL; // Ergibt -INF
echo sichererLogarithmus(-5) . PHP_EOL; // Ergibt NAN
Entstehung von Unendlichkeit durch Überlauf
<?php
$gross = PHP_FLOAT_MAX * 2;
echo var_export(is_infinite($gross), true) . PHP_EOL; // true
$normal = PHP_FLOAT_MAX;
echo var_export(is_infinite($normal), true) . PHP_EOL; // false
// Wichtig · Fallstricke
Hinweis zur Typumwandlung: Ganzzahlige Werte werden implizit in float konvertiert, bevor die Prüfung stattfindet. Sehr große Ganzzahlen, die den Float-Bereich überschreiten, können dabei zu INF werden und is_infinite() gibt true zurück.
Verhalten von NAN: is_infinite(NAN) gibt false zurück, da NaN technisch nicht gleich Unendlich ist. Zur vollständigen Validierung sollten immer sowohl is_infinite() als auch is_nan() eingesetzt werden, oder alternativ is_finite(), das nur bei endlichen, gültigen Zahlen true zurückgibt.