strtoupper()
A função strtoupper() no PHP converte todas as letras minúsculas de uma string em maiúsculas, sendo útil para normalização e comparações.
Introdução
strtoupper() converte cada letra minúscula de uma string em maiúscula e retorna o resultado. A string original não é alterada — como todas as funções de string do PHP, strtoupper() retorna uma nova string em vez de modificar o argumento no lugar.
Você a utiliza sempre que precisa de saída ou comparação sem distinção de maiúsculas e minúsculas: normalizando códigos de país (us → US), destacando um título em caixa alta, ou comparando duas strings sem se preocupar com capitalização. Esta página cobre a sintaxe, a importante ressalva sobre multibyte, e as funções relacionadas que você frequentemente usará junto com ela.
Sintaxe
strtoupper(string $string): string| Parte | Descrição |
|---|---|
$string | A string de entrada. Obrigatório. |
| Retorno | Uma cópia de $string com cada letra ASCII minúscula (a–z) convertida em maiúscula. Caracteres que não são letras são retornados sem alteração. |
Um exemplo básico
Dígitos, espaços e pontuação (!) passam sem alteração — apenas as letras são convertidas para maiúsculas. Note que $string ainda contém "Hello World!"; o texto convertido está em $uppercase.
Comparação sem distinção de maiúsculas e minúsculas
Um uso comum é comparar entradas do usuário sem se preocupar com como foram digitadas. Converta ambos os lados para maiúsculas e depois compare:
<?php
$input = "Yes";
if (strtoupper($input) === "YES") {
echo "Confirmed";
} else {
echo "Not confirmed";
}
// ConfirmedÉ por isso que strtoupper() (e sua contraparte strtolower()) aparecem com tanta frequência em código de processamento de formulários e roteamento.
A armadilha do multibyte
strtoupper() é baseada em bytes e sem consciência de locale para qualquer coisa fora do ASCII simples. Ela só sabe converter a–z. Letras acentuadas e não latinas são mantidas como estão:
<?php
echo strtoupper("café"); // CAFé — the é is not convertedPara texto Unicode (strings UTF-8 com acentos, ñ, cirílico, grego, etc.) use mb_strtoupper(), que entende codificações de caracteres:
<?php
echo mb_strtoupper("café", "UTF-8"); // CAFÉRegra geral: dados apenas ASCII (códigos, slugs, rótulos somente em inglês) → strtoupper(). Qualquer coisa que possa conter caracteres internacionais → mb_strtoupper().
Funções relacionadas
strtolower()— o inverso: converte letras maiúsculas em minúsculas.ucfirst()— torna maiúscula apenas o primeiro caractere de uma string.ucwords()— torna maiúscula o primeiro caractere de cada palavra.
Resumo
strtoupper() retorna uma nova cópia totalmente em maiúsculas de uma string ASCII e é útil para normalizar dados e realizar comparações sem distinção de maiúsculas e minúsculas. Para texto que pode conter caracteres não ASCII, prefira mb_strtoupper() para que letras acentuadas e não latinas sejam convertidas corretamente.