IntlChar::isUAlphabetic() 함수는 입력된 값이 알파벳(alphabetic) 속성을 가진 유니코드 문자인지 여부를 검사하는 데 사용됩니다. 이 함수를 활용하면 특정 문자가 영문 알파벳뿐 아니라 한글 등 다양한 언어의 문자에 해당하는지도 손쉽게 확인할 수 있습니다.
구문(Syntax)
IntlChar::isUAlphabetic(val)
매개변수(Parameters)
val − 검사할 대상 값입니다. UTF-8로 인코딩된 단일 문자 또는 정수 형태의 유니코드 코드 포인트 값을 사용할 수 있습니다.
반환값(Return)
입력값 val이 알파벳 유니코드 문자이면 TRUE(bool(true))를 반환하고, 그렇지 않으면 FALSE(bool(false))를 반환합니다. 두 글자 이상으로 구성된 문자열처럼 유효하지 않은 입력이 전달되면 NULL이 반환됩니다.
예제(Example)
다음은 IntlChar::isUAlphabetic() 함수의 사용 예시입니다.
<?php
var_dump(IntlChar::isUAlphabetic("78"));
echo "<br>";
var_dump(IntlChar::isUAlphabetic("Y"));
echo "<br>";
var_dump(IntlChar::isUAlphabetic("MissionImpossible"));
echo "<br>";
?>
실행 결과(Output)
NULL bool(true) NULL
결과 해설
위 결과에서 눈여겨볼 점은 "78"과 "MissionImpossible"에 대해 NULL이 반환되었다는 것입니다. IntlChar 계열 함수는 기본적으로 하나의 문자(코드 포인트)만 처리할 수 있기 때문에, 두 글자 이상의 문자열을 인자로 전달하면 유효한 입력으로 간주하지 않고 NULL을 반환합니다. 반면 단일 문자인 "Y"는 알파벳에 해당하므로 bool(true)가 출력됩니다.
추가 활용 예시
정수형 코드 포인트나 한글 같은 비(非)영문 문자도 검사할 수 있습니다.
<?php
var_dump(IntlChar::isUAlphabetic(65)); // 'A' → bool(true)
echo "<br>";
var_dump(IntlChar::isUAlphabetic("1")); // 숫자 → bool(false)
echo "<br>";
var_dump(IntlChar::isUAlphabetic("가")); // 한글 → bool(true)
?>
참고 사항
IntlChar 클래스는 PHP 7.0 이상에서 제공되며, PECL intl 확장 모듈이 설치되어 있어야 사용할 수 있습니다.
IntlChar::isalpha()가 일반 범주(general category)가 '문자(letter)'인 경우만 판별하는 것과 달리,isUAlphabetic()은 유니코드의 'Alphabetic' 바이너리 속성을 기준으로 판별하므로 로마 숫자(Nl) 등 일부 추가 문자까지 포함해 검사한다는 차이가 있습니다.