Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP filter_var_array() 함수 완벽 가이드 – 여러 변수 한 번에 필터링하기

PHP의 filter_var_array() 함수는 배열에 담긴 여러 변수를 한 번에 검증·필터링할 수 있게 해주는 함수입니다. 개별 변수마다 filter_var()를 반복 호출하는 대신 필터 규칙을 배열로 정의해 한꺼번에 적용할 수 있어, 폼 데이터나 외부 입력값을 처리할 때 코드가 훨씬 간결해집니다.

문법

filter_var_array(arrayname, parameters)

매개변수

  • arrayname − 필터링할 데이터가 담겨 있는 배열입니다.

  • parameters − 각 키에 어떤 필터를 적용할지 지정하는 필터 인수 배열입니다.

반환값

filter_var_array() 함수는 성공 시 요청된 변수들의 값을 담은 배열을 반환하고, 실패하면 false를 반환합니다. 참고로 특정 변수의 필터링이 실패하면 해당 값은 false가 되고, 배열에 존재하지 않는 변수라면 NULL이 됩니다.

사용 예제

<?php
   $arr = Array (
      "stname" => "Jack",
      "stmarks" => "95",
      "stemail" => "jack@abcde.com",
   ); 
   $filters = array (
      "stname" => array (
         "filter"=>FILTER_CALLBACK,
         "flags"=>FILTER_FORCE_ARRAY,
         "options"=>"ucwords"
      ),
      "stmarks" => array (
         "filter"=>FILTER_VALIDATE_INT,
         "options"=>array (
            "min_range"=>1,
            "max_range"=>100
         )
      ),
      "stemail"=> FILTER_VALIDATE_EMAIL,
   );
   print_r(filter_var_array($arr, $filters));
?>

위 예제의 실행 결과는 다음과 같습니다.

Array
(
   [stname] => Jack
   [stmarks] => 95
   [stemail] => jack@abcde.com
)

예제 동작 방식

  • stname − FILTER_CALLBACK 필터와 ucwords 옵션을 조합해 이름의 첫 글자를 대문자로 변환하고, FILTER_FORCE_ARRAY 플래그로 결과를 배열 형태로 강제합니다.

  • stmarks − FILTER_VALIDATE_INT 필터로 정수 여부를 검사하며, min_range와 max_range 옵션 덕분에 값이 반드시 1~100 사이여야 통과됩니다.

  • stemail − FILTER_VALIDATE_EMAIL 상수만 지정해 이메일 주소 형식이 올바른지 간단히 검증합니다.

이처럼 filter_var_array()를 활용하면 문자열 변환, 숫자 범위 검사, 이메일 형식 확인 등 서로 다른 필터 작업을 하나의 호출로 처리할 수 있어 입력값 검증 로직을 깔끔하게 관리할 수 있습니다.