PHPでは、 IS_NAN関数を使用して、値が「nan」(not-a数)であるかどうかを確認します。 NANは、違法な数を表す特別な値であり、通常は数値計算中に発生します。特に、0を0で割る0などの無効な数学操作を実行する場合、または非数値文字列を数値に変換する場合。
IS_NAN関数はパラメーターを取得し、ブール値を返します。渡された値がNANである場合はtrueで、それ以外の場合はfalseです。
is_nan($var);
$ var :チェックする値。
$ varがnanである場合、 trueを返します。
$ varがnanでない場合、 falseが返されます。
IS_NAN関数を使用して値がNANであるかどうかを判断する方法を示す例をいくつか紹介します。
<?php
$val = 0 / 0; // 生産する NaN
if (is_nan($val)) {
echo "値はです NaN";
} else {
echo "値はそうではありません NaN";
}
?>
上記の例では、 0/0の結果はNANであるため、 IS_NAN関数はTrueを返し、「値はNAN」を出力します。
<?php
$str = "abc"; // 有効な番号に変換することはできません
$val = (float) $str; // 浮動小数点数へのキャスト
if (is_nan($val)) {
echo "値はです NaN";
} else {
echo "値はそうではありません NaN";
}
?>
この例では、文字列「ABC」を有効な数値に変換することはできないため、変換後にNANになり、IS_NANはtrueに戻ります。
<?php
$result = sqrt(-1); // 負の数の平方根はです NaN
if (is_nan($result)) {
echo "計算結果は次のとおりです NaN";
} else {
echo "計算結果はそうではありません NaN";
}
?>
SQRT(-1)は、負の数の平方根が実際の範囲内で無効であるため、NANを返します。したがって、 IS_NANはtrueを返し、「計算の結果はNANです」を出力します。
NANとNULLとINFの違い:
NANは「数字ではない」という意味で、ヌルと正と負の無限( inf )とは異なります。 nullはヌル値であり、 INFは無限に大きいまたは無限に少数です。 NANであり、NULLやINFではなく、判断に使用されます。
ナンと自己平等:
NANには特別なプロパティがあり、これはどの値(それ自体を含む)に等しくありません。したがって、 ==または==を使用して、値がnanかどうかを判断することはできません。 is_nanを使用して確認する必要があります。
PHPのIS_NAN関数は、特に数学的計算に関しては、値がNANであるかどうかを判断するための重要なツールです。この関数を通じて、違法な数値計算を効果的にキャプチャして処理できます。