현재 위치: > 최신 기사 목록> PHP IS_NAN 널 값을 판단 할 때 예기치 않은 동작 및 솔루션

PHP IS_NAN 널 값을 판단 할 때 예기치 않은 동작 및 솔루션

gitbox 2025-05-28

PHP에서는 종종 다양한 기능을 사용하여 데이터 유형을 확인하고 변환합니다. IS_NAN () 함수는 값이 "NAN (Non-Number (NAN)"인지 여부를 결정하는 데 사용되는 함수 중 하나입니다. 사용량은 간단 해 보이지만 경우에 따라 특히 널 값을 판단 할 때는 예상치 못한 동작을 일으킬 수 있습니다. 이 기사는 IS_NAN () 기능의 사용과 널 값 점검의 오류를 피하는 방법에 대해 자세히 소개합니다.

IS_NAN () 함수의 개요

IS_NAN () 함수는 값이 비 번호 (NAN) 인지 여부를 감지하는 데 사용됩니다. NAN은 "NOT-NOMBER"의 약어로, 일반적으로 0으로 나누거나 잘못된 계산 작업과 같은 수학 연산에 나타납니다. NULL 또는 FALSE 와 다르며 수치 계산을 처리 할 때 NAN은 일반적으로 유효하지 않거나 계산 불가능한 결과를 나타냅니다.

문법:

 is_nan(mixed $value): bool
  • $ 값 : 감지 할 변수. NAN 인 경우 True를 반환하십시오. 그렇지 않으면 False를 반환하십시오.

예:

 $val1 = acos(8); // 역 코사인 값을 계산하십시오,결과가 될 것입니다NaN
$val2 = 1 / 0;   // 0으로 나뉩니다,결과도 있습니다NaN

echo is_nan($val1); // 산출:true
echo is_nan($val2); // 산출:true

일반적인 오용 : is_nan () 및 null 값 (null)

PHP에서는 NULL 값 (NULL)과 NAN은 두 가지 다른 개념이지만 많은 사람들이 IS_NAN ()을 사용할 때 실수로 NULL 값을 전달합니다. is_nan ()은 값에 대해 true를 반환 하지 않지만 false를 반환합니다. 이것은 종종 예상치 못한 논리적 오류로 이어집니다.

예:

 $val = NULL;
var_dump(is_nan($val)); // 산출:bool(false)

위의 예에서 알 수 있듯이 IS_NAN ()은 NULL 이 NAN이라고 판단하지 않지만 False를 반환합니다. 즉, 값을 IS_NAN () 로 잘못 잘못 평가하면 NULL 값을 판단 할 수있는 기회를 놓칠 수 있습니다.

또 다른 일반적인 오류 :

 $val = "";
var_dump(is_nan($val)); // 산출:bool(false)

빈 문자열 "" "NULL"으로 간주 될 수 있지만 IS_NAN ()False를 반환 할 수 있으며, 이는 이것이 유효한 숫자라고 잘못 생각하게 할 수 있습니다. 실제로 빈 문자열은 NAN이 아닌 유효한 문자열 유형입니다.

이 오용을 피하는 방법?

널 값 판단의 오용을 피하기 위해 is_nan () 함수를 사용하기 전에 명확한 널 값 판단을하거나 다른 적절한 기능을 사용하여 확인할 수 있습니다.

  1. IS_NULL ()을 사용하여 NULL을 결정하십시오.

변수가 null 인지 확인하려면 is_null () 함수를 사용할 수 있습니다.

 $val = NULL;
if (is_null($val)) {
    echo "가치는입니다NULL";
}
  1. 빈 ()을 사용하여 널 값을 결정하십시오.

변수가 비어 있는지 여부를 결정하려면 empty () 함수를 사용할 수 있습니다. NULL , 빈 문자열, 번호 0 , 빈 배열 등을 감지합니다.

 $val = "";
if (empty($val)) {
    echo "값이 비어 있습니다";
}
  1. IS_NUMERIC ()를 사용하여 값을 결정합니다.

변수가 숫자 유형이고 NAN이 아닌지 확인 해야하는 경우 IS_NUMERIC ()IS_NAN ()을 결합하여 판단을 할 수 있습니다.

 $val = 10;
if (is_numeric($val) && !is_nan($val)) {
    echo "가치는입니다有效的数字";
}

이러한 방법을 통해 변수의 상태를보다 정확하게 판단하고 실수로 또는 널 값을 IS_NAN () 에 오도하지 않아 잠재적 인 논리적 오류를 피할 수 있습니다.

결론적으로

IS_NAN () 은 매우 유용한 기능이지만 NULL 값을 판단 할 때는 예상 효과를 수행하지 않습니다. 오용을 피하기 위해 IS_NULL () , empty () 또는 is_numeric () 과 같은 함수를 결합하여 실제 개발에서보다 자세한 값 판단을 내야합니다. 합리적인 조합과 판단 논리를 통해 널 가치 판단에서 IS_NAN () 의 예기치 않은 동작을 피할 수 있으므로 코드의 견고성과 유지 보수 가능성이 향상됩니다.

이 기사가 IS_NAN () 의 사용 시나리오와 그 제한을 더 잘 이해하는 데 도움이되기를 바랍니다. 질문이나 아이디어가 있으시면 의견 섹션에서 자유롭게 전달하십시오!