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

PHP의 IntlChar::isUAlphabetic() 함수 – 알파벳 유니코드 문자 판별하기

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) 등 일부 추가 문자까지 포함해 검사한다는 차이가 있습니다.