毎日のPHP開発、特に数学的計算を含むシナリオでは、プログラマーは特別な価値に遭遇する可能性があります:NAN(数ではない)。 NANは通常、無限から無限を差し引く、負の数の平方根を取得するなどの違法な数学的操作で発生します。NANはJavaScriptなどの言語でより一般的ですが、NANはPHPにも存在し、 IS_NAN()関数で判断できます。
NANは、IEEE 754フローティングポイント番号標準の特別な値であり、「数字ではない」ことを示しています。通常、通常の数値比較(たとえば==または=== )によって直接識別されるわけではないため、特別な関数を使用して判断する必要があります。
PHPでは、 IS_NAN()関数を使用して、変数がNANであるかどうかを判断します。構文は次のとおりです。
bool is_nan ( float $num )
この関数は、この値がnanの場合、それ以外の場合は偽りの場合にtrueを返すフローティングポイントパラメーターを受信します。
is_nan()の実際の使用を示す例をいくつか紹介します。
<?php
// 違法な数学的操作:InfinityからInfinityを引いた
$a = log(0); // -INF
$b = log(0); // -INF
$c = $a - $b; // 結果は次のとおりです NaN
if (is_nan($c)) {
echo "消す NaN";
} else {
echo "結果はそうではありません NaN";
}
?>
この例では、 log(0)は負の無限(-INF)を返し、2つの負の無限部減算の結果は明確な数ではないため、PHPはNANを返します。この結果は、is_nan()を使用して正常に判断できます。
IS_NAN()は、文字列または整数が「違法価値」であるかどうかを検出するために使用されません。これは、浮動小数点数にのみ適用されます。
実際のビジネスでは、NANの出現は、多くの場合、特定の数学的論理に問題があることを意味し、プログラムはタイムリーにキャプチャおよび処理する必要があります。
is_nan()を使用する場合、パラメーターが浮動小数点数であることを確認してください。そうしないと、予想される結果が返されないことを確認してください。
2つの数値を受信して比率を計算するためのAPIを開発するとします。
<?php
function calculate_ratio($a, $b) {
if ($b == 0) {
return NAN;
}
return $a / $b;
}
$result = calculate_ratio(10, 0);
if (is_nan($result)) {
echo "無効な計算結果,パラメーター入力を確認してください。";
} else {
echo "比率はです:$result";
}
?>
上記のコードでは、除数が0の場合、nanを積極的に返し、 is_nan()を使用して違法価値であるかどうかを判断します。このアプローチは、一部の数値コンピューティングインターフェイスで非常に実用的であり、誤った結果が直接返されたり、ランタイムエラーのトリガーを避けたりできます。
たとえば、インターフェイスを介して計算リクエストを送信するとします。
$apiUrl = 'https://gitbox.net/api/calculate';
curlまたはfile_get_contents()を使用して、 gitbox.netドメイン名の下のサービスにリクエストを送信し、 is_nan()を使用して返品結果を判断して計算ロジックの信頼性を確保できます。
PHPは数学計算に適した言語ではありませんが、浮動小数点操作を含むタスクを扱う場合、NAN値が静かに表示される場合があります。 IS_NAN()関数の助けを借りて、開発者はこれらの潜在的な問題を効果的に特定し、それによりコードの堅牢性を高めることができます。 IS_NAN()の理解と合理的な使用は、システムの数値精度を確保するために特に重要です。