PHP의 IntlChar::ispunct() 함수는 주어진 입력 문자가 문장 부호(punctuation character)에 해당하는지 여부를 판별하는 함수입니다. 유니코드 기준으로 문장 부호 범주에 속하는 문자인지 검사하여 그 결과를 불리언(Boolean) 값으로 반환합니다.
문법(Syntax)
bool IntlChar::ispunct(val)
매개변수(Parameters)
val − 검사할 대상 값으로, 정수(Integer) 값 또는 UTF-8로 인코딩된 단일 문자열을 사용할 수 있습니다. 필수 입력값입니다!
반환값(Return)
IntlChar::ispunct() 함수는 전달받은 val이 문장 부호 문자일 경우 TRUE를 반환하며, 문장 부호가 아닐 경우 FALSE를 반환합니다. 만약 단일 문자가 아닌 잘못된 값이 전달되면 NULL이 반환됩니다.
예제 1
다음은 IntlChar::ispunct() 함수의 기본적인 사용 예제입니다.
<?php
var_dump(IntlChar::ispunct("1"));
echo "<br>";
var_dump(IntlChar::ispunct(","));
echo "<br>";
var_dump(IntlChar::ispunct("q"));
?>
실행 결과
bool(false)
bool(true)
bool(false)
위 예제에서 숫자 "1"과 알파벳 "q"는 문장 부호가 아니므로 false를 반환하고, 쉼표 ","는 문장 부호에 해당하므로 true를 반환하는 것을 확인할 수 있습니다.
예제 2
이번에는 또 다른 예제를 살펴보겠습니다.
<?php
var_dump(IntlChar::ispunct(";"));
echo "<br>";
var_dump(IntlChar::ispunct(":"));
echo "<br>";
var_dump(IntlChar::ispunct("10"));
?>
실행 결과
bool(true)
bool(true)
NULL
세미콜론 ";"과 콜론 ":"은 문장 부호이기 때문에 true가 반환됩니다. 반면, 두 글자로 구성된 문자열 "10"처럼 단일 문자가 아닌 값을 전달하면 NULL이 반환됩니다. 즉, 이 함수는 반드시 한 글자짜리 문자나 해당 코드 포인트의 정수 값에 사용해야 올바른 결과를 얻을 수 있습니다.
참고 사항
IntlChar 클래스를 사용하려면 PHP 환경에 intl 확장 모듈(PECL intl)이 설치되어 있어야 합니다. intl 확장은 국제화 기능을 지원하는 라이브러리로, ICU(International Components for Unicode)를 기반으로 동작하며 PHP 5.5 이상 버전부터 함께 제공됩니다. 확장 모듈이 활성화되어 있지 않다면 php.ini 설정에서 intl 확장을 활성화한 후 사용해야 합니다.