현재 위치: > 최신 기사 목록> PHP의 수치 값과 IS_NAN의 비교 : 일반 트랩 및 솔루션

PHP의 수치 값과 IS_NAN의 비교 : 일반 트랩 및 솔루션

gitbox 2025-05-19

PHP에서 IS_NAN () 함수는 값이 "숫자가 아닌"(NAN)인지 확인하는 데 매우 유용한 도구입니다. NAN은 "숫자가 아님"에 대한 약어입니다. 이는 일부 수학 연산의 결과가 유효하지 않거나 대표 할 수 없음을 의미합니다. NAN은 특수 값으로서 일반적으로 부동 작업 중에 0으로 나누거나 계산 프로세스 중에 유효하지 않은 값을 만나는 동안 발생합니다.

이 기사는 IS_NAN () 함수의 기본 사용법을 탐색하고 수치 비교에서 일반적인 함정을 피하기 위해이를 사용하는 방법에 대해 논의합니다.

NAN은 무엇입니까?

NAN은 플로팅 작업에서 특별한 값으로 유효한 숫자가 아님을 나타냅니다. JavaScript, Python 및 PHP에서 NAN은 유효한 것으로 표현할 수없는 값을 나타냅니다.

예를 들어:

 $number = 0 / 0;  // 나오십시오 NaN

이 예에서는 0으로 나눈 작업이 잘못된 수학적 작업이므로 $ 번호는 NAN이됩니다.

php의 is_nan () 함수

PHP는 값이 NAN인지 확인하기 위해 is_nan () 함수를 제공합니다. 구문은 다음과 같습니다.

 is_nan(mixed $var): bool
  • $ var : 감지 할 변수.

  • 반환 값 : 변수가 NAN 인 경우 true를 반환합니다. 그렇지 않으면 False .

예:

 $val1 = 0 / 0;  // NaN
$val2 = 10;     // 숫자

echo is_nan($val1) ? "예 NaN" : "不예 NaN";  // 산출:예 NaN
echo is_nan($val2) ? "예 NaN" : "不예 NaN";  // 산출:不예 NaN

이 예에서 $ Val1 은 NAN이고 $ VAL2는 유효한 수치 값입니다.

일반적인 수치 비교 트랩

1. NAN을 비교하려면 == 또는 ===

NAN은 어떤 값도 같지 않습니다 (자체 포함). 변수가 NAN인지 비교하기 위해 == 또는 ===를 직접 사용하면 결과가 혼란 스러울 수 있습니다. 다음 코드를 고려하십시오.

 $val1 = 0 / 0;  // NaN

if ($val1 == $val1) {
    echo "값은 동일합니다";
} else {
    echo "값은 동일합니다";  // 산출:값은 동일합니다
}

동일한 변수를 비교하더라도 NAN은 NAN과 결코 같지 않기 때문에 결과는 여전히 거짓 입니다.

2. IS_NAN ()을 사용하여 함정을 피하십시오

이 비교 문제를 피하기 위해 IS_NAN () 함수는 매우 효과적인 도구입니다. IS_NAN ()을 사용하면 == 또는 === 의 오용에 대해 걱정하지 않고 변수가 NAN인지 직접 감지 할 수 있습니다.

 $val1 = 0 / 0;  // NaN

if (is_nan($val1)) {
    echo "这예一个 NaN 값";  // 산출:这예一个 NaN 값
}

이 방법은 NAN 값을보다 명확하고 정확하게 처리하는 데 도움이 될 수 있습니다.

실제 적용 : 양식 데이터에서 NAN 값을 처리합니다

많은 웹 애플리케이션에서 사용자는 숫자가 아닌 데이터가 포함 된 양식을 제출하여 백그라운드의 수치 비교에 오류가 발생할 수 있습니다. is_nan () 함수를 사용하면 이러한 문제를 효과적으로 피할 수 있습니다.

사용자가 숫자 값을 제출하는 간단한 형태가 있다고 가정하고 유효한 숫자인지 확인해야합니다.

 if (isset($_POST['submit'])) {
    $value = $_POST['number'];
    
    // 检查예否为有效的数값
    if (is_nan($value)) {
        echo "잘못된 입력,请输入一个有效的숫자。";
    } else {
        echo "输入的숫자예:$value";
    }
}

이 예에서 IS_NAN ()은 유효하지 않은 입력이 추가로 처리되는 것을 효과적으로 방지 할 수있어 숫자 값을 비교할 때 NAN으로 인해 응용 프로그램이 충돌하지 않도록합니다.

URL 예제의 NAN 비교

실제 개발에서는 URL 주소와 관련된 논리로 NAN을 판단해야 할 수도 있습니다. 사용자가 GET 요청을 통해 URL 매개 변수를 제출하는 PHP 응용 프로그램이 있다고 가정합니다. URL이 유효한 숫자 값인지 확인해야합니다 (예 : ID 전달 또는 금액). 유효한 값이 전달되지 않으면 NAN 또는 Outliers를 처리 할 수 ​​있습니다.

예는 다음과 같습니다.

 // 우리가받는다고 가정합니다 URL 参数예某个计算的结果
$url = "https://gitbox.net/calculation?value=" . $_GET['value'];

$value = $_GET['value'];

if (is_nan($value)) {
    echo "URL 中传递的값不예有效숫자,링크를 확인하십시오:$url";
} else {
    echo "URL 中传递的숫자예有效的:$value";
}

이 예에서는 URL 매개 변수를 감지하여 유효한 값이 포함되어 있는지 확인합니다. NAN이 감지되면 사용자에게 링크를 확인하도록 상기시킵니다.

요약

IS_NAN ()은 숫자 값을 다룰 때 발생하는 많은 일반적인 함정을 피하는 데 도움이되는 매우 유용한 PHP 기능입니다. IS_NAN ()을 올바르게 사용하면 NAN 값이 프로그램 로직을 방해하는 것을 효과적으로 피할 수있어 코드가보다 강력하고 유지 관리가 쉬워집니다.

숫자 값을 비교할 때 IS_NAN ()을 사용하여 직접 비교를 위해 == 또는 ===를 사용하지 않고 변수의 유효성을 확인하십시오.