PHP에서 IS_NAN () 및 IS_NUMERIC () 는 일반적으로 사용되는 두 가지 함수이며, 변수가 "숫자가 아님"(NAN)과 숫자 또는 숫자 문자열인지 여부를 결정하는 데 사용됩니다. 그러나 많은 사람들이 혼란 스러울 수 있습니다. 어떤 경우에는 is_nan ()가 true를 반환하는 이유, is_numeric () 가 false를 반환 할 수 있습니다. 이 기사는이 두 기능이 어떻게 깊이 작용하는지를 파고 그 차이점을 설명합니다.
IS_NAN ()은 값이 NAN인지 확인하는 데 사용되는 함수입니다 (숫자가 아님). NAN은 불법 수치 계산 결과를 나타내는 특수 부동 소수점 값입니다. 예를 들어, 일부 수학 작업을 수행하면 결과가 유효한 번호가 아닌 경우 NAN이 반환 될 수 있습니다. 일반적으로 NAN은 다음과 같은 상황으로 인해 발생합니다.
0으로 나뉘어진다
음수의 제곱근
유효하지 않은 수학적 표현 (예 : : 유효하지 않은 문자열 변환)
이 불법 숫자는 is_nan ()을 사용하여 감지 할 수 있습니다.
$var1 = acos(2); // 이것은 불법적 인 운영입니다,acos(2) 돌아올 것입니다 NaN
$var2 = 0 / 0; // 0 분열 0 결과도 있습니다 NaN
echo is_nan($var1); // 산출 true
echo is_nan($var2); // 산출 true
IS_NUMERIC ()는 변수가 숫자 문자열인지 숫자 문자열인지를 결정하는 데 사용됩니다. 이 함수는 주어진 값이 법적 숫자 유형인지 또는 숫자로 변환 할 수 있는지 여부를 확인합니다. IS_NUMERIC () 는 값이 유효한 플로팅 포인트 번호인지 확인하지 않고 숫자로 표시 될 수 있는지 (정수 또는 부동 소수점 번호 포함) 만 확인합니다.
echo is_numeric(123); // 산출 true,123 숫자입니다
echo is_numeric("123"); // 산출 true,끈 "123" 也숫자입니다
echo is_numeric("12.34"); // 산출 true,끈 "12.34" 也숫자입니다
echo is_numeric("abc"); // 산출 false,"abc" 不숫자입니다
IS_NAN () 및 IS_NUMERIC () 모두 숫자 감지를 포함하지만 특히 NAN을 다룰 때 검사 메커니즘이 다양합니다.
IS_NAN () 은 값이 NAN인지 확인하는 데 특별히 사용됩니다. 이는 특별한 "비 번호"값입니다. NAN은 플로팅 포인트의 상태이며 IS_NUMERIC ()는 값을 유효한 숫자로 변환 할 수 있는지에 대해서만 관심이 있습니다.
is_nan ()가 true를 반환하면 iS_NUMERIC ()는 NAN이 유효한 숫자가 아니기 때문에 False를 반환하고 IS_NUMERIC ()는 숫자로 변환 할 수있는 유효한 숫자 또는 문자열 만 인식 할 수 있습니다. NAN은 법적 번호로 간주 될 수 없으므로 IS_NUMERIC ()는 False를 반환합니다.
$var = acos(2); // NaN
echo is_nan($var); // 산출 true,$var 예 NaN
echo is_numeric($var); // 산출 false,NaN 不예一个合法的数字
IS_NAN ()은 값이 NAN인지 만 결정할 수 있습니다. 사실을 반환하면 값이 불법 숫자임을 의미합니다.
IS_NUMERIC ()은 값을 유효한 숫자로 사용할 수 있는지 확인하는 데 사용되며 NAN은 유효하지 않은 숫자로 간주되므로 False를 반환합니다.
이것이 PHP에서 is_numeric ()가 true 를 반환 할 때 false를 반환하는 이유입니다.