lcfirst()
Articolo sulla funzione PHP lcfirst(), che converte il primo carattere di una stringa in minuscolo. Utile per lavorare con identificatori e input.
La funzione PHP lcfirst() rende minuscolo il primo carattere di una stringa e restituisce la stringa modificata. Viene toccato solo il primissimo carattere — il resto della stringa rimane esattamente com'è. Questa pagina tratta la sintassi, il valore restituito, il comportamento con caratteri non alfabetici e Unicode, e i casi d'uso più comuni.
Sintassi
lcfirst(string $string): stringAccetta un singolo parametro obbligatorio e restituisce una stringa nuova — lcfirst() non modifica la variabile originale sul posto.
| Parametro | Descrizione |
|---|---|
$string | La stringa di input il cui primo carattere deve essere convertito in minuscolo. |
Valore restituito: la stringa risultante con il primo carattere in minuscolo.
Esempio di base
Solo la H iniziale viene modificata; il resto rimane invariato:
hello World!Quando usarla?
lcfirst() è piccola ma utile ogni volta che il primo carattere ha un significato:
- Generare identificatori camelCase. Trasforma
GetUserNameingetUserNameper nomi di metodi o proprietà. - Normalizzare l'input dell'utente che potrebbe arrivare con la maiuscola quando lo si vuole memorizzare in minuscolo.
- Formattazione di frasi/liste, dove la prima parola di un frammento non deve iniziare con la lettera maiuscola.
<?php
// PascalCase -> camelCase
echo lcfirst("UserProfile"); // userProfile
?>userProfileComportamento con caratteri non alfabetici e input già in minuscolo
Se il primo carattere non è una lettera maiuscola — una cifra, un simbolo, uno spazio o una lettera già minuscola — lcfirst() restituisce la stringa invariata.
<?php
echo lcfirst("Hello"), "\n"; // hello
echo lcfirst("123ABC"), "\n"; // 123ABC (first char is a digit)
echo lcfirst(" Hello"), "\n"; // " Hello" (leading space is unchanged)
echo lcfirst(""), "\n"; // "" (empty string)
?>hello
123ABC
Hello
Attenzione: lcfirst() è basata sui byte, non è Unicode-aware
lcfirst() gestisce solo i caratteri ASCII a byte singolo. I caratteri multibyte, come le lettere accentate o non latine, non vengono convertiti correttamente in minuscolo, perché la funzione opera sul primo byte anziché sul primo carattere.
<?php
echo lcfirst("Élan"); // stays "Élan" (É is multibyte)
?>ÉlanPer le stringhe multibyte, converte in minuscolo il primo carattere manualmente con mb_strtolower() e mb_substr():
<?php
$str = "Élan";
$first = mb_strtolower(mb_substr($str, 0, 1), "UTF-8");
echo $first . mb_substr($str, 1); // élan
?>élanFunzioni correlate
ucfirst()— il contrario: rende maiuscolo il primo carattere.ucwords()— rende maiuscola la prima lettera di ogni parola.strtolower()— converte l'intera stringa in minuscolo.strtoupper()— converte l'intera stringa in maiuscolo.