Aktueller Standort: Startseite> Neueste Artikel> So verwenden Sie IS_FINITE und IS_NAN in Kombination

So verwenden Sie IS_FINITE und IS_NAN in Kombination

gitbox 2025-05-29

Bei der Durchführung numerischer Berechnungen und Datenüberprüfung bietet PHP einige Funktionen zum Erkennen von Gleitkomma-Nummern wie is_finite () und is_nan () . Diese beiden Funktionen werden verwendet, um festzustellen, ob ein Wert ein endlicher Wert ist (dh er ist nicht unendlich oder unendlich) und ob es sich um einen "nicht numerischen Wert" (NAN, nicht eine Zahl) handelt. In der tatsächlichen Entwicklung müssen wir sie häufig gleichzeitig verwenden, um die Gültigkeit der Werte zu gewährleisten, um logische Fehler oder operative Ausnahmen zu vermeiden.

Grundfunktion Einführung

  • is_finite (float $ num): bool
    Gibt true zurück, wenn $ num ein endlicher Wert ist, andernfalls gibt es false zurück. Dies kann verwendet werden, um positive und negative Unendlichkeit (Inf und -inf) auszuschließen.

  • is_nan (float $ num): bool
    Rückgabe true Wenn $ num NAN (nicht eine Zahl) ist, ist dies normalerweise das Ergebnis illegaler mathematischer Operationen.

Warum es in Kombination verwenden?

Bei der Verarbeitung externer Daten (z. B. Benutzereingaben, Dateilesen oder API -Rückgabe) können wir nicht voreinstellen, dass die Daten eine rechtliche schwimmende Punktnummer sein müssen. Ein typisches Szenario besteht darin, mathematische Operationen wie Teilung, Quadratwurzel, Logarithmus usw. durchzuführen, und das Ergebnis kann Nan oder Unendlichkeit sein. Zum Beispiel:

 $result = log(0); // zurückkehren -INF

oder:

 $result = acos(2); // Aus der Domäne,zurückkehren NAN

Die Verwendung von is_finite () allein schließt NAN -Werte nicht aus und umgekehrt. Daher müssen zwei Funktionen kombiniert werden, um umfassender zu bestimmen, ob ein Wert ein "normaler" Wert ist.

Best Practices für den gemeinsamen Gebrauch

Um effizienter zu bestimmen, ob ein Wert "normal" ist, können Sie eine allgemeine Funktion wie unten gezeigt schreiben:

 function is_valid_number($value) {
    return is_finite($value) && !is_nan($value);
}

Mit dieser Funktion können wir sie in verschiedenen Datenverarbeitung problemlos aufrufen:

 $data = [
    log(0),
    3.1415,
    acos(2),
    1.0e309
];

foreach ($data as $value) {
    if (is_valid_number($value)) {
        echo "Gültiger Wert: $value\n";
    } else {
        echo "Ungültiger Wert: $value\n";
    }
}

Die Ausgabe wird sein:

 Ungültiger Wert: -INF
Gültiger Wert: 3.1415
Ungültiger Wert: NAN
Ungültiger Wert: INF

Kombiniert mit Anwendungsszenarien

In einer Datenverarbeitungspipeline können Sie beispielsweise ein numerisches Array von <Code> https://gitbox.net/api/data </code> für die statistische Analyse erhalten. Bevor Sie mathematische Operationen ausführen, verwenden Sie IS_VALID_NUMBER () , um die Daten zu reinigen, um unerwartete NAN- oder unendliche Kontaminationen nachfolgenden Ergebnissen zu vermeiden.

 $json = file_get_contents('https://gitbox.net/api/data');
$data = json_decode($json, true);

$cleanData = array_filter($data, 'is_valid_number');
$average = array_sum($cleanData) / count($cleanData);

echo "Durchschnittswert: $average";

Dies macht den Code nicht nur sauberer, sondern minimiert auch logische Schwachstellen.

Zusammenfassung

Die Verwendung von is_finite () und is_nan () in Kombination ist ein wichtiges Mittel, um die Gültigkeit numerischer Werte zu überprüfen. Durch die Einkapselung als allgemeine Funktion und die gleichmäßige Verwendung von Eingabeüberprüfung, Datenvorverarbeitung, API -Empfang und anderen Links können die Robustheit und Wartbarkeit von PHP -Anwendungen erheblich verbessert werden. In der tatsächlichen Entwicklung vermeidet diese defensive Programmierungstechnik häufig viele schwer zu entdeckende Grenzfehler.