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.
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.
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.
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
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.
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.