정의 및 사용법
is_infinite() 함수는 불리언(Boolean) 값을 반환하는 함수입니다. 주어진 매개변수가 무한대(infinite) 숫자인지 검사하며, 무한대이면 TRUE를, 그렇지 않으면 FALSE를 반환합니다.
PHP에서 float 타입으로 표현 가능한 허용 범위를 벗어나는 숫자는 무한대로 간주됩니다. 따라서 이 함수는 수학 연산 결과가 유효한 부동소수점 범위 내에 있는지 확인할 때 유용하게 사용됩니다.
구문
is_infinite ( float $val ) : bool
매개변수
| 번호 | 매개변수 및 설명 |
|---|---|
| 1 | val 무한대 여부를 검사할 값입니다. |
반환 값
PHP is_infinite() 함수는 val이 float 타입의 허용 범위를 벗어나면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.
PHP 버전 지원
이 함수는 PHP 4.x, PHP 5.x, PHP 7.x 모든 버전에서 사용할 수 있습니다.
예제 1: 일반 숫자 확인하기
다음 예제는 100이 무한대 숫자가 아님을 보여줍니다.
<?php
$val = 100;
$ret = is_infinite($val);
if ($ret == TRUE) {
echo $val . " is an infinite number" . "\n";
} else {
echo $val . " is not an infinite number" . "\n";
}
?>
출력 결과
100 is not an infinite number
예제 2: log(0) 값 확인하기
log(0)의 값은 수학적으로 정의되지 않으며, PHP에서는 -INF(음의 무한대)로 처리됩니다. 다음 예제에서 이를 확인해 보겠습니다.
<?php
$val = log(0);
var_dump(is_infinite($val));
?>
출력 결과
bool(true)
예제 3: acos() 함수와 NAN 값
cos(x)의 값은 항상 -1과 1 사이에 있으므로, 이 범위를 벗어난 값을 acos() 함수에 전달하면 NAN(Not A Number)이 반환됩니다. NAN은 무한대가 아니므로 is_infinite() 함수는 FALSE를 반환합니다.
<?php
$val = acos(5);
var_dump(is_infinite($val));
?>
출력 결과
bool(false)
예제 4: sqrt(-1) 함수와 NAN 값
마찬가지로 sqrt(-1)도 NAN을 생성하므로, is_infinite() 함수는 FALSE를 반환합니다.
<?php
$val = sqrt(-1);
$ret = is_infinite($val);
if ($ret == TRUE) {
echo $val . " is an infinite number" . "\n";
} else {
echo $val . " is not an infinite number" . "\n";
}
?>
출력 결과
NAN is not an infinite number
참고 사항
무한대 관련 검사에는 is_infinite() 외에도 is_finite()(유한수 여부 확인)와 is_nan()(NAN 여부 확인) 함수를 함께 활용하면 더욱 안전한 수치 연산 처리가 가능합니다. 특히 나눗셈이나 로그, 제곱근 등의 수학 함수를 사용할 때는 결과값이 INF, -INF 또는 NAN이 될 수 있으므로 반드시 유효성 검사를 수행하는 것이 좋습니다.