FILTER_VALIDATE_INT 상수란?
PHP의 FILTER_VALIDATE_INT 상수는 filter_var() 함수와 함께 사용되어, 주어진 값이 유효한 정수인지 검증하는 필터입니다. 사용자 입력값이나 외부 데이터를 다룰 때 해당 값이 실제로 정수 형태인지 확인할 수 있어 입력값 검증에 널리 활용됩니다.
옵션 및 플래그
FILTER_VALIDATE_INT 필터에는 검증 조건을 세부적으로 조정할 수 있는 옵션과 플래그가 있습니다.
min_range — 허용되는 최소 정수 값을 지정합니다.
max_range — 허용되는 최대 정수 값을 지정합니다.
FILTER_FLAG_ALLOW_OCTAL — 8진수 표기(예: 010) 값을 허용합니다.
FILTER_FLAG_ALLOW_HEX — 16진수 표기(예: 0x1A) 값을 허용합니다.
반환값
FILTER_VALIDATE_INT는 필터 ID 역할만 하는 상수이므로, 그 자체로는 어떤 값도 반환하지 않습니다. 실제 검증 결과는 filter_var() 함수가 반환하며, 값이 유효한 정수일 경우 해당 정수를, 유효하지 않을 경우 false를 반환합니다.
기본 사용 예제
다음은 변수가 정수인지 검증하는 기본적인 예제입니다.
<?php
$int = 110;
$var = 3.5;
var_dump(filter_var($var, FILTER_VALIDATE_FLOAT));
if (filter_var($int, FILTER_VALIDATE_INT)) {
echo("정수형 변수입니다");
} else {
echo("정수형 변수가 아닙니다");
}
?>실행 결과는 다음과 같습니다.
float(3.5) 정수형 변수입니다
$var 값 3.5는 소수이므로 FILTER_VALIDATE_FLOAT에 의해 float 타입으로 출력되고, $int 값 110은 정수 조건을 통과하여 "정수형 변수입니다"라는 메시지가 출력됩니다.
범위 지정 예제
min_range와 max_range 옵션을 함께 사용하면 특정 범위 내의 정수만 통과시킬 수 있습니다.
<?php
$int = 5;
$min = 1;
$max = 20;
if (filter_var($int, FILTER_VALIDATE_INT, array("options" => array("min_range"=>$min, "max_range"=>$max))) === false) {
echo("허용 범위를 벗어났습니다!");
} else {
echo("허용 범위 내의 값입니다!");
}
?>실행 결과는 다음과 같습니다.
허용 범위 내의 값입니다!
이 예제에서는 값 5가 최소값 1부터 최대값 20 사이에 있으므로 검증을 통과합니다. 만약 $int가 0이나 21이라면 "허용 범위를 벗어났습니다!"가 출력됩니다.
활용 팁
filter_var()는 검증에 성공하면 해당 정수 값을 그대로 반환합니다. 따라서 값이 0인 경우도 정상 처리하려면 if (filter_var(...))처럼 참/거짓으로만 판단하기보다, 위 예제처럼 === false 비교를 사용하는 것이 더 안전합니다.