W3docs

ucfirst()

A função ucfirst() em PHP converte o primeiro caractere de uma string para maiúscula. Saiba como usá-la e seus casos especiais.

ucfirst() retorna uma cópia de uma string com o primeiro caractere convertido para maiúscula. Todos os outros caracteres são mantidos exatamente como estavam. É a função ideal quando você precisa capitalizar um nome, uma frase ou um rótulo sem alterar o restante do texto.

Esta página aborda a sintaxe, o valor de retorno, os casos especiais que surpreendem as pessoas (números, strings já em maiúsculas, texto multibyte) e como ucfirst() difere das funções de capitalização relacionadas.

Sintaxe

ucfirst(string $string): string
ParâmetroDescrição
$stringA string de entrada.

Valor de retorno: uma nova string com o primeiro caractere em maiúscula. ucfirst() não modifica $string no lugar — ela retorna o resultado, portanto você deve capturá-lo ou exibi-lo com echo. Se o primeiro caractere não for uma letra minúscula (um dígito, um símbolo ou já estiver em maiúscula), a string é retornada sem alterações.

Exemplo básico

php— editable, runs on the server

Apenas o h inicial se torna H. A vírgula, o restante das palavras e o ponto de exclamação permanecem intocados — ucfirst() nunca coloca em minúscula nem altera nada após o primeiro caractere.

O que ucfirst() não faz

Um erro comum é esperar que ucfirst() limpe a string inteira. Ela não faz isso:

<?php

echo ucfirst("HELLO") . "\n";   // HELLO  (first char already uppercase → no change)
echo ucfirst("hELLO") . "\n";   // HELLO  (only the first char is touched, not the rest)
echo ucfirst("123abc") . "\n";  // 123abc (first char is a digit → nothing to capitalize)

Se você deseja uma palavra Capitalizada limpa a partir de uma entrada bagunçada, converta-a para minúsculas primeiro e depois capitalize:

<?php

$messy = "hELLO";
echo ucfirst(strtolower($messy));   // Hello

Capitalizando cada palavra

ucfirst() afeta apenas o primeiro caractere da string inteira. Para capitalizar a primeira letra de cada palavra, use ucwords():

<?php

$title = "the quick brown fox";

echo ucfirst($title) . "\n";   // The quick brown fox
echo ucwords($title) . "\n";   // The Quick Brown Fox

Texto multibyte / não-ASCII

ucfirst() funciona byte a byte e compreende apenas letras ASCII (az). Ela não converterá corretamente para maiúscula letras acentuadas ou não latinas como é, ñ ou caracteres cirílicos no início da string. Para esses casos, o tratamento correto requer a extensão de strings multibyte — não existe mb_ucfirst(), por isso um padrão comum é:

<?php

function mb_ucfirst(string $string, string $encoding = "UTF-8"): string
{
    $first = mb_strtoupper(mb_substr($string, 0, 1, $encoding), $encoding);
    return $first . mb_substr($string, 1, null, $encoding);
}

echo mb_ucfirst("élise");   // Élise

Quando usar

  • Formatação de entrada do usuário — exibir "joao" digitado em um formulário como "Joao".
  • Capitalização de sentença — capitalizar a primeira palavra de uma mensagem ou rótulo gerado.
  • Criação de identificadores legíveis — transformar um segmento de slug em um título.

Para a operação oposta (colocar o primeiro caractere em minúscula) consulte lcfirst(). Para alterar o caso de toda a string, consulte strtoupper() e strtolower().

Resumo

ucfirst() converte apenas o primeiro caractere de uma string para maiúscula e retorna o resultado sem modificar o original. Ela ignora não-letras e caracteres já em maiúscula, nunca toca no restante da string e funciona apenas com ASCII — combine-a com strtolower() para normalizar entradas bagunçadas, com ucwords() para capitalizar cada palavra, ou com as funções multibyte acima para texto acentuado.

Prática

Prática
O que a função ucfirst() do PHP faz?
O que a função ucfirst() do PHP faz?
Was this page helpful?