PHP의 ctype_upper() 함수는 문자열이 모두 대문자로 이루어져 있는지 확인하는 함수입니다. 문자열 내 모든 문자가 현재 로케일(locale) 기준으로 대문자 알파벳이라면 TRUE를 반환하고, 하나라도 대문자가 아닌 문자가 포함되어 있다면 FALSE를 반환합니다.
문법 (Syntax)
ctype_upper(str)
매개변수 (Parameters)
str – 대문자 여부를 검사할 문자열입니다.
반환값 (Return)
문자열의 모든 문자가 현재 로케일에서 대문자 알파벳에 해당하면 TRUE를, 그렇지 않으면 FALSE를 반환합니다.
예제 1 – 배열 요소 검사하기
다음 예제는 배열에 담긴 여러 문자열을 순회하면서 각각 대문자로만 구성되어 있는지 확인합니다.
<?php
$arr = array('9898jjhh', 'PQR', 'Amit');
foreach ($arr as $demo) {
if (ctype_upper($demo)) {
echo "$demo has all uppercase letters. \n";
} else {
echo "$demo does not have all uppercase letters. \n";
}
}
?>실행 결과
9898jjhh does not have all uppercase letters. PQR has all uppercase letters. Amit does not have all uppercase letters.
위 결과를 보면, 숫자와 소문자가 섞여 있는 '9898jjhh'와 소문자를 포함한 'Amit'은 FALSE를 반환하고, 전부 대문자인 'PQR'만 TRUE를 반환하는 것을 확인할 수 있습니다.
예제 2 – 단일 문자열 검사하기
이번에는 하나의 문자열을 직접 검사해 보겠습니다.
<?php
$str = 'AUSTRALIA';
if (ctype_upper($str)) {
echo "Word has all uppercase characters!\n";
} else {
// FALSE일 경우 실행
echo "Word does not have all uppercase characters!\n";
}
?>실행 결과
Word has all uppercase characters!
참고 사항
빈 문자열을 검사하면 PHP 8.1 이전 버전에서는 FALSE, PHP 8.1부터는 항상 FALSE를 반환하므로 주의가 필요합니다.
ctype_upper()는 공백, 숫자, 특수문자가 포함된 경우에도 FALSE를 반환합니다. 오직 대문자 알파벳만으로 구성된 문자열만 TRUE를 반환합니다.
검사 기준은 시스템의 현재 로케일 설정에 따라 달라질 수 있습니다.