Bei der PHP -Programmierung begegnen Sie bei der Verarbeitung schwimmender Werte häufig auf einige "ungültige" Werte. Beispielsweise können einige mathematische Operationen NAN zurückgeben (nicht eine Zahl). Um festzustellen, ob ein schwimmender Wert NAN ist, liefert PHP die IS_NAN -Funktion. In diesem Artikel wird vorgestellt, wie diese Funktion verwendet wird, um festzustellen, ob ein schwimmender Wert ein ungültiger Wert ist, und den entsprechenden Code demonstrieren.
NAN ist ein besonderer Wert des schwebenden numerischen Typs, der einen "ungültigen" Wert angibt, der normalerweise in den folgenden Situationen auftritt:
Mathematische Operationen können keinen gültigen numerischen Wert zurückgeben, z. B. 0 geteilt durch 0, oder eine ungültige Quadratwurzel berechnen.
Einige externe Datenquellen übergeben Werte, bei denen es sich nicht um Zahlen handelt, z. B. empfangene Zeichenfolgen, die nicht in gültige Zahlen umgewandelt werden können.
In PHP entspricht Nan keiner Wert, einschließlich sich selbst. Daher ist das Ergebnis beim Vergleich von zwei NAN -Werten immer falsch , was es uns unmöglich macht, den herkömmlichen Vergleichsvorgang direkt zu verwenden, um festzustellen, ob ein Wert NAN ist.
PHP liefert die IS_NAN -Funktion, um festzustellen, ob ein schwimmender Wert NAN ist. Es ist sehr einfach zu verwenden:
<?php
$value = 0 / 0; // Erzeugen a NaN Wert
if (is_nan($value)) {
echo "Dies ist a NaN Wert";
} else {
echo "Dies ist a有效的数Wert";
}
?>
Im obigen Code wird $ value NAN (über die 0/0 Operation) zugeordnet, und prüfen Sie, ob er über die Funktion is_nan () nan wird. Wenn ja, geben Sie die entsprechenden Eingabeaufforderungsinformationen aus.
Wenn die Variable NAN ist, gibt die IS_NAN -Funktion true zurück.
Wenn die Variable nicht nan ist, wird Falsch zurückgegeben.
Hier sind einige häufige Beispielcodes für die NAN -Wert -Erkennung:
<?php
$values = [0 / 0, log(-1), sqrt(-1), 100, 3.14];
foreach ($values as $value) {
if (is_nan($value)) {
echo "$value Es ist eins NaN Wert\n";
} else {
echo "$value NEIN NaN Wert\n";
}
}
?>
Im obigen Code haben wir ein Array mit mehreren Werten überprüft, von denen einige ungültige NAN- Werte sind, z. B. log (-1) und SQRT (-1) . Das Programm prüft jeden Wert und gibt aus, ob es sich um NAN handelt.
Manchmal erhalten wir schwimmende Werte aus der URL als Parameter und verwenden die Funktion is_nan, um festzustellen, ob sie gültig ist. Hier ist ein Beispiel, das auf URL -Parametern basiert:
<?php
$url = 'http://gitbox.net/somepage.php?value=NaN';
parse_str(parse_url($url, PHP_URL_QUERY), $queryParams);
if (isset($queryParams['value']) && is_nan((float)$queryParams['value'])) {
echo "URL 中的Wert无效 (NaN)";
} else {
echo "URL 中的Wert有效";
}
?>
In diesem Beispiel haben wir simuliert, einen URL -Parameter von gitbox.net zu erhalten und festzustellen, ob es sich um NAN handelt. Nehmen Sie zuerst die Abfragezeichenfolge in der URL an und verwenden Sie dann IS_NAN , um zu überprüfen, ob der übergebene schwimmende Wert gültig ist.
IS_NAN gilt nur für schwimmende numerische Typen. Wenn Sie diese Funktion für andere Datenarten (z. B. Zeichenfolgen, Ganzzahlen usw.) aufrufen, gibt es falsch zurück.
Wenn Sie feststellen müssen, ob eine Variable eine Zahl ist und nicht NAN ist, können Sie die IS_Numererische Funktion und die IS_NAN -Funktion in Kombination verwenden.
<?php
$value = "abc";
if (is_numeric($value) && !is_nan((float)$value)) {
echo "$value Es ist eins有效的数Wert";
} else {
echo "$value NEIN有效的数Wert";
}
?>
Die IS_NAN -Funktion ist eine einfache Möglichkeit, festzustellen, ob der schwimmende Wert NAN ist. Durch die Verwendung können Entwickler ungültige Werte genau erkennen und verarbeiten, um sicherzustellen, dass der Code ordnungsgemäß funktioniert, wenn Sie Werte begegnen, die die Erwartungen nicht entsprechen. Insbesondere bei der Verarbeitung externer Datenquellen oder Benutzereingaben kann die rationale Verwendung der IS_NAN -Funktion potenzielle Fehler effektiv vermeiden.