PHP에서 CTYPE_UPPER () 는 일반적으로 사용되는 문자 분류 기능으로 문자열의 모든 문자가 대문자인지 여부를 감지합니다. 구문은 매우 간단합니다.
 <span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">ctype_upper</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$text</span></span><span>);
</span></span>문자열 $ 텍스트 의 모든 문자가 대문자 인 경우 true를 반환하십시오. 그렇지 않으면 false를 반환하십시오. 그러나 실제 개발에서 CTYPE_UPPER () 함수는 특히 문자열에 숫자 나 기호를 포함 할 때 예상치 못한 잘못 판단을 경험할 수 있습니다. ctype_upper ()는 문자열의 문자 유형 만 확인하지만 문자 컨텍스트를 고려하지 않기 때문입니다.
 숫자 및 기호 잘못 판단 :
 ctype_upper () 함수는 글자와 비 알파벳 상태를 구별하지 않습니다. 전달한 문자열에 숫자 또는 기호가 포함 된 경우 문자열에 비 레터 문자가 포함되어 있어도 Ctype_upper ()가 "비 Lowercase"문자로 취급됩니다.
예를 들어:
 <span><span><span class="hljs-variable">$text</span></span><span> = </span><span><span class="hljs-string">'HELLO123'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">ctype_upper</span></span><span>(</span><span><span class="hljs-variable">$text</span></span><span>));  </span><span><span class="hljs-comment">// 산출 bool(true),잘못된 판단</span></span><span>
</span></span>이 판결은 123이 대문자가 아니기 때문에 거짓을 반환해야하지만 CType_upper ()는 실수로 그것이 대문자라고 믿습니다.
 공백 및 특수 문자 :
 마찬가지로, 공백과 같은 비 alphabetical 문자, 문자열의 구두점 마크도 "대문자를 준수하는"것으로 잘못 판단되어 함수의 결과에 영향을 미칩니다.
예를 들어:
 <span><span><span class="hljs-variable">$text</span></span><span> = </span><span><span class="hljs-string">'HELLO WORLD!'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">ctype_upper</span></span><span>(</span><span><span class="hljs-variable">$text</span></span><span>));  </span><span><span class="hljs-comment">// 산출 bool(true),잘못된 판단</span></span><span>
</span></span>여기서 공간과 느낌표는 대문자의 일부로 간주되어서는 안됩니다.
이러한 문제를 해결하려면 먼저 문자열의 알파벳 문자 만 판단에 참여해야합니다. 간단한 전처리를 통해 숫자, 공백, 기호 등과 같은 비 알파벳 상태 문자를 걸러 내고 CType_Upper () 함수를 호출 할 수 있습니다.
PHP의 내장 된 preg_replace () 함수를 사용하여 비 alphabetical 문자를 제거 할 수 있으며 알파벳 문자 만 유지됩니다. 이런 식으로 CTYPE_UPPER ()는 비 alphabetical 문자에 의해 방해받지 않습니다.
 <span><span><span class="hljs-variable">$text</span></span><span> = </span><span><span class="hljs-string">'HELLO123'</span></span><span>;
</span><span><span class="hljs-variable">$filtered_text</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/[^a-zA-Z]/'</span></span><span>, </span><span><span class="hljs-string">''</span></span><span>, </span><span><span class="hljs-variable">$text</span></span><span>);  </span><span><span class="hljs-comment">// 글자 만 보존됩니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">ctype_upper</span></span><span>(</span><span><span class="hljs-variable">$filtered_text</span></span><span>));  </span><span><span class="hljs-comment">// 正确산출 bool(true)</span></span><span>
</span></span>문자열에 공백 및 기타 기호가 포함 된 경우 모든 문자가 모두 대문자인지 확인하기 전에 이러한 문자를 제거 할 수도 있습니다.
 <span><span><span class="hljs-variable">$text</span></span><span> = </span><span><span class="hljs-string">'HELLO WORLD!'</span></span><span>;
</span><span><span class="hljs-variable">$filtered_text</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/[^a-zA-Z]/'</span></span><span>, </span><span><span class="hljs-string">''</span></span><span>, </span><span><span class="hljs-variable">$text</span></span><span>);  </span><span><span class="hljs-comment">// 공간과 기호를 제거하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">ctype_upper</span></span><span>(</span><span><span class="hljs-variable">$filtered_text</span></span><span>));  </span><span><span class="hljs-comment">// 산출 bool(true)</span></span><span>
</span></span>더 세밀한 제어가 필요한 경우, 캐릭터가 문자인지를 확인할뿐만 아니라 자본화되는지 확인할 수있는 기능을 직접 구현하는 것이 좋습니다. 예를 들어:
 <span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">is_all_upper</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$text</span></span></span><span>) {
    </span><span><span class="hljs-comment">// 비 alphabetical 문자를 필터링하십시오</span></span><span>
    </span><span><span class="hljs-variable">$filtered_text</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/[^a-zA-Z]/'</span></span><span>, </span><span><span class="hljs-string">''</span></span><span>, </span><span><span class="hljs-variable">$text</span></span><span>);
    
    </span><span><span class="hljs-comment">// 그것이 대문자인지 결정하십시오</span></span><span>
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">ctype_upper</span></span><span>(</span><span><span class="hljs-variable">$filtered_text</span></span><span>);
}
</span><span><span class="hljs-variable">$text</span></span><span> = </span><span><span class="hljs-string">'HELLO123'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">is_all_upper</span></span><span>(</span><span><span class="hljs-variable">$text</span></span><span>));  </span><span><span class="hljs-comment">// 산출 bool(true)</span></span><span>
</span></span>CTYPE_UPPER () 는 매우 유용한 기능이지만 실제로 사용될 때는 판단이 아닌 문자 (예 : 숫자, 기호, 공백 등)의 영향을받지 않도록해야합니다. 합리적인 전처리 및 필터링을 통해 일반적인 잘못 판단 문제를 피할 수 있으므로 코드의 견고성이 향상됩니다. 실제 개발에서는 문자의 유형에주의를 기울일뿐만 아니라 데이터의 정확성을 보장하기 위해 문자열의 컨텍스트를 종합적으로 고려해야합니다.