Вы можете попробовать сделать копию строки, преобразовать копию в верхний регистр и сравнить ее с исходной строкой:
public function isUpperCase ($string) {
return $string === strtoupper($str);
}
ИЛИ, лучшей версией (которая является многобайтовой *) будет:
public function mb_isUpperCase ($string) {
$upper = mb_convert_case(
$string,
MB_CASE_UPPER,
mb_detect_encoding(
$string
)
);
return $string === $upper;
}
* Обратите внимание, что mb_detect_encoding может завершиться ошибкой и вернуть false. В производственной среде вы должны либо предоставить список возможных кодировок для mb_detect_encoding , либо обработать случай, когда mb_detect_encoding завершится неудачей.