In PHP sind is_nan () und is_finite () zwei häufig verwendete numerische Erkennungsfunktionen, die verwendet werden, um zu bestimmen, ob eine Variable ein nicht numerischer (NAN) ist oder ob ein numerischer Wert endlich ist. Obwohl sie ähnlich aussehen, haben sie unterschiedliche Verwendungen und anwendbare Szenarien. In diesem Artikel werden die Unterschiede zwischen diesen beiden Funktionen und ihren jeweiligen Anwendungsszenarien ausführlich erörtert.
Die Funktion is_nan () wird verwendet, um festzustellen, ob ein Wert ein "nicht numerischer" (NAN, nicht-a-number) ist. In Mathematik und Informatik ist NAN ein besonderer schwebender Wert, der normalerweise ein Ergebnis darstellt, das nicht als numerischer Wert ausgedrückt werden kann. Wenn beispielsweise 0 durch 0 geteilt wird oder die Quadratwurzel einer negativen Zahl berechnet wird, wird NAN generiert.
is_nan(mixed $var): bool
Parameter : $ var kann jede Art von Variable sein.
Rückgabewert : Wenn $ var nan ist, gibt die Funktion true zurück, sonst falsch .
$number1 = sqrt(-1); // Berechnen Sie die Quadratwurzel einer negativen Zahl,Das Ergebnis istNaN
$number2 = 10 / 0; // Das Ergebnis istINF,Das Große
var_dump(is_nan($number1)); // Ausgabe:bool(true)
var_dump(is_nan($number2)); // Ausgabe:bool(false)
is_nan () ist sehr geeignet für Szenarien, in denen ungültige Ergebnisse in Berechnungen erscheinen, insbesondere wenn es schwimmende Punktvorgänge beteiligt sind. Zum Beispiel:
Vermeiden Sie bei mathematischen Berechnungen ungültige Ergebnisse, die durch Operationen wie Teilen durch Null- oder negative Zahlen verursacht werden.
In den Bereichen wissenschaftlicher Computer, Bildverarbeitung usw., ob es illegale Ergebnisse gibt.
Die Funktion is_finite () wird verwendet, um zu prüfen, ob eine Zahl ein endlicher Wert ist. Es prüft, ob die angegebene Zahl ein endlicher Wert ist, kann nicht unendlich (INF) oder NAN sein.
is_finite(mixed $var): bool
Parameter : $ var kann jede Art von Variable sein.
Rückgabewert : Wenn $ var ein endlicher Wert ist, gibt die Funktion true zurück, sonst falsch .
$number1 = 10 / 2; // Das Ergebnis ist5
$number2 = 10 / 0; // Das Ergebnis istINF
$number3 = sqrt(-1); // Das Ergebnis istNaN
var_dump(is_finite($number1)); // Ausgabe:bool(true)
var_dump(is_finite($number2)); // Ausgabe:bool(false)
var_dump(is_finite($number3)); // Ausgabe:bool(false)
is_finite () ist sehr geeignet, um festzustellen, ob eine Variable eine endliche Zahl ist, insbesondere in den Bereichen wissenschaftlicher Computer, Finanzanwendungen usw. Es kann verwendet werden, um festzustellen, ob das Berechnungsergebnis gültig ist, und das durch Infinity (INF) oder NAN verursachte abnormales Programmverhalten zu vermeiden.
Verschiedene Urteilsobjekte :
is_nan () prüft nur, ob es sich um Nan handelt.
is_finite () prüft, ob es sich um einen endlichen Wert handelt. Es gibt False zurück, wenn es sich um Nan oder Infinity (INF) handelt.
Verschiedene Szenarien gelten :
is_nan () ist geeignet, um zu überprüfen, ob es ungültige numerische Berechnungen gibt, z. B. 0 geteilt durch 0.
is_finite () ist geeignet, um zu überprüfen, ob der Wert begrenzt ist, und das Vermeiden von Unendlichkeit oder NAN, die die Programmlogik beeinflussen.
Das Rückgabeergebnis ist anders :
is_nan () gibt true nur dann zurück, wenn die Variable NAN ist.
is_finite () gibt falsch nicht nur NAN, sondern auch INF (Infinity) zurück.
$value1 = 0 / 0; // NaN
$value2 = 10 / 0; // INF
echo is_nan($value1); // true
echo is_nan($value2); // false
echo is_finite($value1); // false
echo is_finite($value2); // false
Die Funktion is_nan () wird verwendet, um festzustellen, ob eine Variable NAN (nicht numerisch) ist, und eignet sich zur Überprüfung ungültiger numerischer Berechnungen.
Die Funktion is_finite () wird verwendet, um zu prüfen, ob eine Zahl endlich ist und zur Beurteilung geeignet ist, ob der Wert gültig ist, und eine Störung von Infinity oder NAN zu vermeiden.
In der tatsächlichen Entwicklung hängt die Auswahl der Verwendung, welche Funktion zu verwenden ist, von der Art des numerischen Werts ab, den Sie überprüft haben, und Ihr Anwendungsszenario. Im Allgemeinen bevorzugt IS_NAN () eine spezielle Fehlerbehandlung, während is_finite () für numerische Legalitätsprüfungen verwendet wird.