PHP 프로그래밍 중에 IS_NAN 함수는 종종 값이 "숫자"(NAN, NOMERT)인지 여부를 결정하는 데 사용됩니다. 그 기능은 일반적으로 변수가 "유효한 숫자가 아님"인지 확인하는 것입니다. 특히 수학적 계산을 수행 할 때 매우 유용합니다. 그러나 실제 개발에서 많은 개발자가 IS_NAN 기능을 사용하는 데 오류가 발생할 수 있습니다. 이 기사는 귀하의 일반적인 사용 오류를 분석하고 솔루션을 제공합니다.
IS_NAN 함수는 값이 NAN (Not-Number)인지 확인하는 데 사용됩니다. 기능 프로토 타입은 다음과 같습니다.
bool is_nan ( mixed $val )
매개 변수 $ val : 확인할 값.
반환 값 : $ val 이 nan 이면 true , 그렇지 않으면 false .
예:
$val = 0 / 0; // 나오십시오 NaN
if (is_nan($val)) {
echo "예 NaN";
} else {
echo "不예 NaN";
}
일부 개발자는 종종 IS_NAN을 사용할 때 IS_NUMER 와 혼동합니다. IS_NUMERIC은 값이 숫자인지 숫자 또는 숫자 문자열인지 확인하는 데 사용되는 반면 IS_NAN은 NAN 인지 확인하는 데만 사용됩니다.
Error example:
$value = 'abc';
if (is_nan($value)) {
echo "예 NaN";
} else {
echo "不예 NaN";
}
현재 IS_NUMERIC은 $ 값이 숫자가 아니라고 판단하지만 IS_NAN은 String 'ABC' 가 NAN이 아니라 숫자가 아닌 String이기 때문에 TRUE를 반환하지 않습니다.
해결책:
IS_NUMERIC를 사용하여 유효한 숫자인지 확인하고 IS_NAN을 사용하여 NAN 인지 확인하십시오.
if (!is_numeric($value)) {
echo "值不예数字";
} elseif (is_nan($value)) {
echo "值예 NaN";
} else {
echo "值예有效的数字";
}
PHP에서 NAN은 "숫자가 아님"을 의미하는 특별한 가치입니다. 많은 개발자들이 INF 또는 -inf 와 같은 상수를 NAN 과 비교하려고 노력하고 있으며 이는 정확하지 않습니다.
$value = INF;
if (is_nan($value)) {
echo "예 NaN";
} else {
echo "不예 NaN";
}
이러한 글쓰기 방식은 "NOT NAN"을 출력합니다. INF는 NAN이 아닌 양성 무한대를 의미하기 때문입니다.
해결책:
NAN을 판단 해야하는 경우 IS_NAN 만 사용해야하지만 다른 수학 상수 (예 : INF )에는 IS_NAN이 필요하지 않습니다.
IS_NAN 함수의 매개 변수는 스칼라 값이어야합니다. 배열 또는 객체가 IS_NAN 으로 전달 된 경우 직접 False를 반환합니다.
Error example:
$value = array(1, 2, 3);
if (is_nan($value)) {
echo "예 NaN";
} else {
echo "不예 NaN";
}
해결책:
인수를 IS_NAN 함수에 전달하기 전에 배열이나 객체가 아닌 스칼라 값 (예 : 정수, 부동 값 등)인지 확인하십시오. 배열 또는 객체의 요소가 NAN 인지 확인 해야하는 경우 하나씩 확인해야합니다.
$value = array(1, 2, NAN);
foreach ($value as $item) {
if (is_nan($item)) {
echo "예 NaN";
}
}
IS_NAN 과 IS_NUMERIC 사이의 혼란을 피하십시오 . 두 가지 기능은 다른 기능을 가지고 있으며 각각 유효한 숫자인지 여부 를 결정하는 데 사용됩니다.
상수 (예 : INF )와 NAN을 혼동하지 마십시오 . 수학적 값이 다릅니다. IS_NAN은 NAN 판단에만 적용됩니다.
스칼라 값을 IS_NAN 으로 전달하십시오 : 배열이나 객체가 전달되면 거짓을 반환하므로 통과 된 값이 호출하기 전에 스칼라인지 확인하십시오.
이러한 일반적인 오류 분석 및 솔루션 방법을 통해 IS_NAN 기능을 더 잘 이해하고 사용하여 개발 과정에서 불필요한 문제를 피할 수 있다고 생각합니다.