PHP의 IntlChar::isspace() 함수는 주어진 입력 문자가 공백 문자(space character)인지 여부를 검사하는 함수입니다. 이 함수는 국제화 확장 모듈인 intl에 포함되어 있으며, 유니코드 표준을 기준으로 문자의 공백 속성을 판별하기 때문에 다국어 환경에서도 안정적으로 사용할 수 있습니다.
문법(Syntax)
IntlChar::isspace(val)
매개변수(Parameters)
val − 공백 여부를 검사할 값입니다. 정수값(유니코드 코드포인트) 또는 UTF-8로 인코딩된 단일 문자열을 전달할 수 있습니다.
반환값(Return Value)
IntlChar::isspace() 함수는 val이 공백 문자일 경우 TRUE(bool(true))를 반환하고, 공백 문자가 아닐 경우 FALSE(bool(false))를 반환합니다. 참고로, 입력값이 유효한 단일 문자가 아닌 경우(예: 여러 문자가 포함된 문자열)에는 NULL이 반환됩니다.
예제 1
다음은 IntlChar::isspace() 함수의 기본적인 사용 예제입니다.
<?php
var_dump(IntlChar::isspace("abcd"));
echo "<br>";
var_dump(IntlChar::isspace(" "));
echo "<br>";
var_dump(IntlChar::isspace(" "));
?>
출력 결과
NULL
bool(true)
bool(true)
위 예제에서 "abcd"는 여러 개의 문자를 포함하고 있어 단일 문자로 해석할 수 없기 때문에 NULL이 반환됩니다. 반면 줄바꿈 문자("\n")와 캐리지 리턴 문자("\r")는 유니코드 규칙상 공백 문자로 분류되므로 true가 반환됩니다.
예제 2
이번에는 숫자 문자열, 일반 공백, 특수 문자를 입력했을 때의 결과를 살펴보겠습니다.
<?php
var_dump(IntlChar::isspace("787"));
echo "<br>";
var_dump(IntlChar::isspace(" "));
echo "<br>";
var_dump(IntlChar::isspace("*"));
?>
출력 결과
NULL
bool(true)
bool(false)
"787"은 세 글자로 이루어진 문자열이므로 단일 문자가 아니어서 NULL이 반환됩니다. 일반 공백(" ")은 공백 문자에 해당하므로 true, 별표("*")는 공백 문자가 아니므로 false가 반환됩니다.
참고 사항
공백 관련 검사가 필요하다면 IntlChar::isspace() 외에도 IntlChar::isWhitespace(), IntlChar::isUWhiteSpace() 같은 유사한 함수들도 함께 활용할 수 있습니다. 각 함수마다 판별 기준이 조금씩 다르므로, 용도에 맞는 함수를 선택해 사용하는 것이 좋습니다.