In PHP sind is_nan () und is_numeric () zwei häufig verwendete Funktionen, die verwendet werden, um festzustellen, ob eine Variable "keine Zahl" (NAN) ist und ob es sich um eine Nummer oder eine numerische Zeichenfolge handelt. Viele Menschen können jedoch verwirrt sein, warum IS_Numeric () in einigen Fällen is_nan () zurückgibt . In diesem Artikel werden diese beiden Funktionen ausgleichen und die Unterschiede zwischen ihnen erläutern.
is_nan () ist eine Funktion, mit der ein Wert NAN (nicht eine Zahl) ist. NAN ist ein besonderer schwebender Punktwert, der ein illegales numerisches Berechnungsergebnis darstellt. Wenn Sie beispielsweise einige mathematische Operationen ausführen, kann die NAN zurückgegeben werden, wenn das Ergebnis keine gültige Nummer ist. Im Allgemeinen wird die NAN durch die folgenden Situationen verursacht:
0 geteilt durch 0
Quadratwurzel der negativen Zahl
Ungültiger mathematischer Ausdruck (z. B.: Umwandlung ungültiger Zeichenfolgen in Zahlen)
Diese illegalen Zahlen können mit is_nan () erkannt werden.
$var1 = acos(2); // Dies ist eine illegale Operation,acos(2) Wird zurückkehren NaN
$var2 = 0 / 0; // 0 Divide durch 0 Das Ergebnis ist auch NaN
echo is_nan($var1); // Ausgabe true
echo is_nan($var2); // Ausgabe true
is_numeric () wird verwendet, um festzustellen, ob eine Variable eine numerische Zeichenfolge oder eine numerische Zeichenfolge ist. Diese Funktion prüft, ob der angegebene Wert ein rechtlicher numerischer Typ ist oder ob er in eine Nummer konvertiert werden kann. Es ist zu beachten, dass is_numeric () nicht prüft, ob der Wert eine gültige schwimmende Punktnummer ist, sondern nur prüft, ob er als Zahl (einschließlich Ganzfunkpunkte oder Schwimmpunktnummer) dargestellt werden kann.
echo is_numeric(123); // Ausgabe true,123 Es ist eine Nummer
echo is_numeric("123"); // Ausgabe true,Saite "123" 也Es ist eine Nummer
echo is_numeric("12.34"); // Ausgabe true,Saite "12.34" 也Es ist eine Nummer
echo is_numeric("abc"); // Ausgabe false,"abc" 不Es ist eine Nummer
Obwohl sowohl is_nan () als auch is_numeric () die Erkennung von Zahlen beinhalten, variieren ihre Inspektionsmechanismen, insbesondere im Umgang mit NAN.
is_nan () wird speziell verwendet, um zu prüfen, ob ein Wert NAN ist, was ein spezieller "nicht nummerierter" Wert ist. Nan ist ein Zustand schwimmender Punkte, und is_numeric () kümmert sich nur darum, ob der Wert in eine gültige Zahl umgewandelt werden kann.
Wenn is_nan () true zurückgibt, gibt is_numeric () false zurück, da NAN keine gültige Nummer ist und Is_Numeric () nur gültige Zahlen oder Zeichenfolgen erkennen kann, die in Zahlen konvertiert werden können. NAN kann nicht als gesetzliche Nummer angesehen werden, so dass is_numeric () false zurückgibt.
$var = acos(2); // NaN
echo is_nan($var); // Ausgabe true,$var Ja NaN
echo is_numeric($var); // Ausgabe false,NaN 不Ja一个合法的数字
is_nan () kann nur bestimmen, ob ein Wert NAN ist. Wenn es zutreffend zurückgibt, bedeutet dies, dass der Wert eine illegale Zahl ist.
is_numeric () wird verwendet, um zu prüfen, ob ein Wert als gültige Nummer verwendet werden kann, während die NAN als ungültige Nummer angesehen wird, sodass er false zurückgibt.
Aus diesem Grund gibt is_numeric () in PHP false zurück, wenn is_nan () true zurückgibt.