W3docs

ucfirst()

La funzione ucfirst() in PHP converte il primo carattere di una stringa in maiuscolo. Scopri sintassi, valori restituiti e casi limite.

ucfirst() restituisce una copia di una stringa con il suo primo carattere convertito in maiuscolo. Tutti gli altri caratteri vengono lasciati esattamente come erano. È la funzione a cui si ricorre quando si deve mettere in maiuscolo un nome, una frase o un'etichetta senza toccare il resto del testo.

Questa pagina illustra la sintassi, il valore restituito, i casi limite che sorprendono le persone (numeri, stringhe già in maiuscolo, testo multibyte) e come ucfirst() si differenzia dalle funzioni di capitalizzazione correlate.

Sintassi

ucfirst(string $string): string
ParametroDescrizione
$stringLa stringa di input.

Valore restituito: una nuova stringa con il primo carattere in maiuscolo. ucfirst() non modifica $string sul posto — restituisce il risultato, quindi è necessario catturarlo o visualizzarlo. Se il primo carattere non è una lettera minuscola (una cifra, un simbolo o già maiuscolo), la stringa viene restituita invariata.

Esempio base

php— editable, runs on the server

Solo la h iniziale diventa H. La virgola, il resto delle parole e il punto esclamativo rimangono intatti — ucfirst() non mette mai in minuscolo né modifica nulla dopo il primo carattere.

Cosa non fa ucfirst()

Un errore comune è aspettarsi che ucfirst() pulisca l'intera stringa. Non lo fa:

<?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 si vuole ottenere una parola con la maiuscola iniziale da un input disordinato, bisogna prima convertirla in minuscolo e poi metterla in maiuscolo:

<?php

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

Mettere in maiuscolo ogni parola

ucfirst() influisce solo sul primissimo carattere dell'intera stringa. Per mettere in maiuscolo la prima lettera di ogni parola, usare invece ucwords():

<?php

$title = "the quick brown fox";

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

Testo multibyte / non ASCII

ucfirst() lavora byte per byte e riconosce solo le lettere ASCII (az). Non convertirà correttamente in maiuscolo lettere accentate o non latine come é, ñ o i caratteri cirillici. Per questi casi, la gestione consapevole dei minuscoli richiede l'estensione per le stringhe multibyte — non esiste una mb_ucfirst(), quindi un pattern comune è:

<?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 usarla

  • Formattare l'input dell'utente — mostrare "john" digitato in un form come "John".
  • Capitalizzazione della frase — mettere in maiuscolo la prima parola di un messaggio o un'etichetta generata.
  • Creare identificatori leggibili — trasformare un segmento di slug in un'intestazione.

Per l'operazione inversa (mettere in minuscolo il primo carattere) vedere lcfirst(). Per modificare le maiuscole dell'intera stringa, vedere strtoupper() e strtolower().

ucfirst() converte in maiuscolo solo il primo carattere di una stringa e restituisce il risultato senza modificare l'originale. Ignora i non-lettere e i caratteri già in maiuscolo, non tocca mai il resto della stringa ed è solo ASCII — combinala con strtolower() per normalizzare input disordinati, con ucwords() per mettere in maiuscolo ogni parola, oppure con le funzioni multibyte descritte sopra per il testo accentato.

Pratica

Pratica
Cosa fa la funzione ucfirst() in PHP?
Cosa fa la funzione ucfirst() in PHP?
Was this page helpful?