PHP 프로그래밍에서 플로팅 값을 처리 할 때 종종 "유효하지 않은"값이 발생합니다. 예를 들어, 일부 수학 연산은 NAN (숫자가 아님)을 반환 할 수 있습니다. 플로팅 값이 NAN 인지 여부를 결정하기 위해 PHP는 IS_NAN 함수를 제공합니다. 이 기사는이 기능을 사용하여 부동 값이 잘못된 값인지 여부를 결정하고 해당 코드를 보여주는 방법을 소개합니다.
NAN 은 플로팅 숫자 유형의 특수 값으로, "유효하지 않은"값을 나타내며, 일반적으로 다음과 같은 상황에서 발생합니다.
수학 연산은 0과 같은 유효한 숫자 값을 0으로 나누거나 잘못된 제곱근을 계산할 수 없습니다.
일부 외부 데이터 소스는 유효한 숫자로 변환 할 수없는 수신 된 문자열과 같이 숫자가 아닌 값을 전달합니다.
PHP에서 NAN은 자체를 포함한 값과 같지 않습니다. 따라서 두 개의 NAN 값을 비교할 때 결과는 항상 거짓 이므로 값이 NAN 인지 확인하기 위해 기존 비교 작업을 직접 사용하는 것이 불가능합니다.
PHP는 IS_NAN 함수를 제공하여 부동 값이 NAN 인지 여부를 감지합니다. 사용하는 것은 매우 간단합니다.
<?php
$value = 0 / 0; // 생성 a NaN 값
if (is_nan($value)) {
echo "이것은 a입니다 NaN 값";
} else {
echo "이것은 a입니다有效的数값";
}
?>
위의 코드에서 $ 값은 NAN ( 0/0 조작을 통해)에 할당 된 다음 IS_NAN () 함수를 통해 NAN 인지 확인합니다. 그렇다면 해당 프롬프트 정보를 출력하십시오.
변수가 NAN 인 경우 IS_NAN 함수가 true를 반환합니다.
변수가 NAN이 아닌 경우 False가 반환됩니다.
NAN 값 감지를위한 몇 가지 일반적인 예제 코드는 다음과 같습니다.
<?php
$values = [0 / 0, log(-1), sqrt(-1), 100, 3.14];
foreach ($values as $value) {
if (is_nan($value)) {
echo "$value 하나입니다 NaN 값\n";
} else {
echo "$value 아니요 NaN 값\n";
}
}
?>
위의 코드에서는 여러 값이있는 배열을 점검했으며 그 중 일부는 Log (-1) 및 SQRT (-1) 와 같은 잘못된 NAN 값입니다. 프로그램은 각 값을 확인하고 NAN 인지 여부를 출력합니다.
때로는 URL에서 매개 변수로 부동 값을 얻을 수 있으며 IS_NAN 함수를 사용하여 유효한 지 여부를 결정할 수 있습니다. 다음은 URL 매개 변수를 기반으로 한 예입니다.
<?php
$url = 'http://gitbox.net/somepage.php?value=NaN';
parse_str(parse_url($url, PHP_URL_QUERY), $queryParams);
if (isset($queryParams['value']) && is_nan((float)$queryParams['value'])) {
echo "URL 中的값无效 (NaN)";
} else {
echo "URL 中的값有效";
}
?>
이 예에서는 gitbox.net 에서 URL 매개 변수를 얻고 NAN 인지 결정했습니다. 먼저 URL에서 쿼리 문자열을 구문 분석 한 다음 IS_NAN을 사용하여 전달 된 부동 값이 유효한지 확인하십시오.
IS_NAN은 플로팅 숫자 유형에만 적용됩니다. 다른 유형의 데이터 (예 : 문자열, 정수 등)에 대해이 기능을 호출하면 False가 반환됩니다.
변수가 숫자이고 NAN이 아닌지 여부를 결정 해야하는 경우 IS_NUMERIC 기능과 IS_NAN 함수를 조합하여 사용할 수 있습니다.
<?php
$value = "abc";
if (is_numeric($value) && !is_nan((float)$value)) {
echo "$value 하나입니다有效的数값";
} else {
echo "$value 아니요有效的数값";
}
?>
IS_NAN 함수는 부동 값이 NAN 인지 여부를 결정하는 쉬운 방법입니다. 이를 사용함으로써 개발자는 유효하지 않은 값을 정확하게 감지하고 처리 할 수있어 기대치를 충족하지 않는 값을 만나면 코드가 올바르게 작동하는지 확인할 수 있습니다. 특히 외부 데이터 소스 또는 사용자 입력을 처리 할 때 IS_NAN 기능의 합리적인 사용은 잠재적 오류를 효과적으로 피할 수 있습니다.