PHP의 filter_has_var() 함수는 지정된 유형의 변수가 존재하는지 여부를 확인할 때 사용합니다. 주로 GET, POST 등 외부에서 전달된 입력값이 실제로 존재하는지 검사할 때 유용하며, 단순히 변수가 설정되었는지 확인하는 것이 아니라 해당 입력 소스에 변수가 등록되어 있는지를 직접 판단한다는 점이 특징입니다.
문법
filter_has_var(type, var)
매개변수
type − 확인할 입력 유형으로, 다음 다섯 가지 상수 중 하나를 사용합니다.
INPUT_GET,INPUT_POST,INPUT_COOKIE,INPUT_SERVER,INPUT_ENVvar − 존재 여부를 확인할 변수의 이름입니다.
반환 값
filter_has_var() 함수는 변수가 존재하면 true를, 존재하지 않으면 false를 반환합니다.
예제
다음 예제는 GET 방식으로 전달된 "email" 입력 변수가 존재하는지 빠르게 확인하는 코드입니다. 이때 입력 유형으로 INPUT_GET을 사용합니다.
<?php
if (!filter_has_var(INPUT_GET, "email")) {
echo("Email isn't there!");
} else {
echo("Email is there!");
}
?>
출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Email isn't there!
참고: isset()과의 차이점
filter_has_var()는 isset($_GET['email'])과 비슷하게 보이지만 동작 방식이 다릅니다. filter_has_var()는 실제 HTTP 요청에 해당 변수가 포함되어 있는지 확인하는 반면, isset()은 스크립트 내부에서 변수가 설정되어 있는지만 검사합니다. 따라서 사용자 입력의 유효성을 검증할 때는 filter_has_var()가 더 정확한 판단을 제공할 수 있습니다.