PHPでは、 IS_NAN()とIS_FINITE()は、一般的に使用される2つの数値検出関数であり、変数が非数値(NAN)であるか、数値が有限かどうかを判断するために使用されます。それらは似ていますが、さまざまな用途と適用可能なシナリオを持っています。この記事では、これら2つの機能とそれぞれのアプリケーションシナリオの違いについて詳しく説明します。
IS_NAN()関数は、値が「非数量」(NAN、NOT-NUMBER)であるかどうかを検出するために使用されます。数学とコンピューターサイエンスでは、ナンは通常、数値として表現できない結果を表す特別な浮動値です。たとえば、0が0で除算されるか、負の数の平方根を計算すると、NANが生成されます。
is_nan(mixed $var): bool
パラメーター: $ varは、あらゆるタイプの変数にすることができます。
返品値: $ varがnanの場合、関数はtrueを返し、それ以外の場合はfalseです。
$number1 = sqrt(-1); // 負の数の平方根を計算します,結果は次のとおりですNaN
$number2 = 10 / 0; // 結果は次のとおりですINF,正无穷大
var_dump(is_nan($number1)); // 出力:bool(true)
var_dump(is_nan($number2)); // 出力:bool(false)
IS_NAN()は、特にフローティングポイント操作が関与している場合、計算に無効な結果が表示されるシナリオに非常に適しています。例えば:
数学的計算では、ゼロまたは負の数で割るなどの操作によって引き起こされる無効な結果を避けてください。
科学的コンピューティング、画像処理などの分野では、違法な結果があるかどうか。
IS_FINITE()関数は、数値が有限値であるかどうかを確認するために使用されます。指定された数値が有限値であり、無限(inf)またはnanになることはできないかどうかを確認します。
is_finite(mixed $var): bool
パラメーター: $ varは、あらゆるタイプの変数にすることができます。
返品値: $ varが有限値の場合、関数はtrueを返し、それ以外の場合は偽りです。
$number1 = 10 / 2; // 結果は次のとおりです5
$number2 = 10 / 0; // 結果は次のとおりですINF
$number3 = sqrt(-1); // 結果は次のとおりですNaN
var_dump(is_finite($number1)); // 出力:bool(true)
var_dump(is_finite($number2)); // 出力:bool(false)
var_dump(is_finite($number3)); // 出力:bool(false)
IS_FINITE()は、特に科学的コンピューティング、金融アプリケーションなどの分野で、変数が有限数であるかどうかを検出するのに非常に適しています。計算結果が有効かどうかを判断し、無限(INF)またはNANによって引き起こされる異常なプログラムの挙動を回避することができます。
異なる判断オブジェクト:
is_nan()は、それがnanであるかどうかのみをチェックします。
IS_FINITE()は、有限値であるかどうかを確認します。NANまたはInfinity(INF)の場合、 FALSEを返します。
さまざまなシナリオが適用されます:
IS_NAN()は、0を0で割るなどの無効な数値計算があるかどうかを確認するのに適しています。
IS_FINITE()は、値が制限されているかどうかを確認し、InfinityまたはNANがプログラムロジックに影響を与えることを回避するのに適しています。
返品結果は異なります:
is_nan()は、変数がnanの場合にのみtrueを返します。
is_finite()は、nanだけでなくinf(infinity)もfalseを返します。
$value1 = 0 / 0; // NaN
$value2 = 10 / 0; // INF
echo is_nan($value1); // true
echo is_nan($value2); // false
echo is_finite($value1); // false
echo is_finite($value2); // false
IS_NAN()関数は、変数がNAN(非数値)であるかどうかを判断するために使用され、無効な数値計算をチェックするのに適しています。
IS_FINITE()関数は、数値が有限であるかどうかを確認するために使用され、値が有効かどうかを判断し、InfinityまたはNANからの干渉を避けます。
実際の開発では、使用する関数を選択することは、確認する必要がある数値値とアプリケーションシナリオに依存します。一般に、 IS_NAN()は特別なエラー処理を好みますが、 IS_FINITE()は数値合法チェックに使用されます。