PHP의 IntlChar::ord() 함수는 입력된 문자에 해당하는 유니코드 코드 포인트(Unicode Code Point) 값을 정수 형태로 반환합니다. 이 함수는 PHP의 국제화(Internationalization) 확장 모듈인 Intl에서 제공되며, 문자를 숫자 값으로 변환해야 하는 다양한 상황에서 유용하게 활용됩니다.
문법(Syntax)
int IntlChar::ord( char_unicode )
매개변수(Parameters)
char_unicode − 코드 포인트 값을 확인하고자 하는 유니코드 문자입니다.
반환값(Return)
IntlChar::ord() 함수는 입력된 문자의 유니코드 값을 정수(integer) 형태로 반환합니다. 만약 유효하지 않은 입력이 전달되면 NULL을 반환합니다.
예제 1
다음 예제는 영문 대문자와 숫자 문자의 유니코드 값을 확인하는 방법을 보여줍니다.
<?php
var_dump(IntlChar::ord("H"));
echo "<br>";
var_dump(IntlChar::ord("9"));
?>
출력 결과
int(72) int(57)
대문자 "H"의 유니코드 값은 72이고, 숫자 문자 "9"의 유니코드 값은 57입니다. 참고로 아스키(ASCII) 코드와 유니코드의 기본 라틴 문자 영역은 값이 동일하기 때문에 익숙한 숫자가 출력되는 것을 확인할 수 있습니다.
예제 2
특수문자와 두 글자 이상의 문자열을 전달했을 때의 결과도 살펴보겠습니다.
<?php
var_dump(IntlChar::ord("%"));
echo "<br>";
var_dump(IntlChar::ord("Fine!"));
?>
출력 결과
int(37) NULL
특수문자 "%"는 정상적으로 유니코드 값 37을 반환하지만, "Fine!"처럼 두 글자 이상인 문자열을 전달하면 단일 문자가 아니기 때문에 NULL이 반환됩니다. 따라서 IntlChar::ord() 함수는 반드시 한 글자짜리 문자에만 사용해야 합니다.
정리
IntlChar::ord()는 단일 유니코드 문자를 정수형 코드 포인트 값으로 변환합니다.
반대 기능을 수행하는 함수는 IntlChar::chr()로, 코드 포인트 값을 문자로 되돌릴 수 있습니다.
멀티바이트 문자열 처리나 다국어 지원 로직을 개발할 때 활용도가 높습니다.