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

PHP IntlChar::isUUppercase() 함수 완벽 정리 – 유니코드 대문자 판별 방법

PHP의 IntlChar::isUUppercase() 함수는 주어진 입력 문자가 유니코드 대문자(Uppercase Unicode Character)에 해당하는지 여부를 검사하는 국제화(Internationalization) 확장 함수입니다. 영문 알파벳뿐만 아니라 그리스어, 키릴 문자 등 세계 각국 언어의 대문자까지 유니코드 기준으로 정확하게 판별할 수 있습니다.

구문

IntlChar::isUUppercase(val)

매개변수

  • val − 검사할 문자 값입니다. UTF-8로 인코딩된 단일 문자열 또는 유니코드 코드포인트(codepoint) 정수 값을 전달할 수 있습니다.

반환 값

전달된 값이 유니코드 대문자이면 true(bool(true))를 반환하고, 그렇지 않으면 false(bool(false))를 반환합니다. 참고로 두 글자 이상의 문자열처럼 유효하지 않은 입력이 전달되면 NULL이 반환될 수 있으며, 이 경우 경고(Warning)가 발생할 수 있습니다.

예제 1

다음은 IntlChar::isUUppercase() 함수의 기본적인 사용 예제입니다.

<?php
   var_dump(IntlChar::isUUppercase("2"));
   echo "<br>";
   var_dump(IntlChar::isUUppercase("Jack"));
   echo "<br>";
   var_dump(IntlChar::isUUppercase("K"));
?>

출력 결과

bool(false)
NULL
bool(true)

결과 해석: 숫자 "2"는 알파벳 대소문자 개념이 없으므로 false를 반환합니다. 단일 대문자 "K"는 유니코드 대문자에 해당하므로 true를 반환합니다. 반면 "Jack"처럼 두 글자 이상의 문자열을 전달하면 함수가 단일 문자(코드포인트)만 처리하기 때문에 NULL이 반환됩니다.

예제 2

이번에는 특수 문자와 소문자를 함께 테스트해 보겠습니다.

<?php
   var_dump(IntlChar::isUUppercase("*"));
   echo "<br>";
   var_dump(IntlChar::isUUppercase("n"));
   echo "<br>";
   var_dump(IntlChar::isUUppercase("D"));
?>

출력 결과

bool(false)
bool(false)
bool(true)

결과 해석: 특수 문자 "*"와 소문자 "n"은 모두 대문자가 아니므로 false를 반환하고, 대문자 "D"만 true를 반환합니다.

함수 사용 시 주의사항

  • 반드시 단일 문자 또는 코드포인트 값을 전달해야 하며, 문자열 전체를 전달하면 의도한 결과를 얻을 수 없습니다.

  • 이 함수를 사용하려면 PHP에 intl 확장 모듈(Internationalization extension)이 활성화되어 있어야 합니다.

  • 영문 알파벳 외에 악센트가 있는 문자(예: É), 그리스어(예: Ω), 키릴 문자(예: Б) 등도 유니코드 규칙에 따라 올바르게 판별됩니다.

  • 반대 동작을 수행하는 IntlChar::isULowercase()(소문자 판별)나 대소문자를 변환하는 IntlChar::toupper(), IntlChar::tolower() 함수와 함께 활용하면 좋습니다.