PHP의 ctype_alnum() 함수는 주어진 문자열이 영숫자(alphanumeric), 즉 영문자와 숫자로만 구성되어 있는지 검사하는 함수입니다. 문자열의 모든 문자가 영문자 또는 숫자에 해당하면 TRUE를 반환하고, 하나라도 다른 문자가 포함되어 있으면 FALSE를 반환합니다.
이 함수는 회원가입 시 아이디 형식 검증, 입력값 유효성 검사 등 특수문자가 섞여 있는지 확인해야 하는 상황에서 매우 유용하게 활용됩니다.
구문(Syntax)
ctype_alnum(string $str): bool
매개변수(Parameters)
str − 검사할 대상 문자열입니다.
반환값(Return)
ctype_alnum() 함수는 str의 모든 문자가 영문자 또는 숫자이면 TRUE를 반환하며, 그 외의 경우에는 FALSE를 반환합니다.
참고 사항
- 빈 문자열('')을 전달하면 PHP 8.1.0부터는 항상 FALSE를 반환합니다.
- ctype 계열 함수는 현재 설정된 로케일(locale)의 영향을 받으므로, 로케일에 따라 판정 결과가 달라질 수 있습니다.
예제(Example)
다음은 ctype_alnum() 함수의 동작을 확인하는 예제입니다.
<?php
$str = array('demo', 'test#$!test');
foreach ($str as $a) {
if (ctype_alnum($a)) {
echo "$a : 모든 문자가 영문자 또는 숫자입니다. \n";
} else {
echo "$a : 영문자나 숫자가 아닌 문자가 포함되어 있습니다. \n";
}
}
?>실행 결과(Output)
demo : 모든 문자가 영문자 또는 숫자입니다. test#$!test : 영문자나 숫자가 아닌 문자가 포함되어 있습니다.
위 예제에서 'demo'는 영문자만으로 이루어져 있어 TRUE가 반환된 반면, 'test#$!test'에는 특수문자(#, $, !)가 포함되어 있어 FALSE가 반환된 것을 확인할 수 있습니다.