lcfirst()
Notre article présente la fonction PHP lcfirst(), qui convertit le premier caractère d'une chaîne en minuscule. Utile pour le formatage de texte.
La fonction PHP lcfirst() met le premier caractère d'une chaîne en minuscule et retourne la chaîne modifiée. Seul le tout premier caractère est affecté — le reste de la chaîne est laissé exactement tel quel. Cette page couvre sa syntaxe, sa valeur de retour, son comportement avec les non-lettres et Unicode, ainsi que les situations courantes où elle est utile.
Syntaxe
lcfirst(string $string): stringElle accepte un seul paramètre obligatoire et retourne une nouvelle chaîne — lcfirst() ne modifie pas la variable d'origine en place.
| Paramètre | Description |
|---|---|
$string | La chaîne d'entrée dont le premier caractère doit être mis en minuscule. |
Valeur de retour : la chaîne résultante avec son premier caractère en minuscule.
Exemple de base
Seul le H initial est modifié ; le reste reste intact :
hello World!Quand l'utiliser ?
lcfirst() est petite mais pratique chaque fois que le premier caractère a une signification particulière :
- Génération d'identifiants camelCase. Transformez
GetUserNameengetUserNamepour les noms de méthodes ou de propriétés. - Normalisation des saisies utilisateur qui peuvent arriver avec une majuscule quand vous les stockez en minuscule.
- Formatage de phrases ou de listes, où le premier mot d'un fragment ne doit pas commencer par une majuscule.
<?php
// PascalCase -> camelCase
echo lcfirst("UserProfile"); // userProfile
?>userProfileComportement avec les non-lettres et les entrées déjà en minuscule
Si le premier caractère n'est pas une lettre majuscule — un chiffre, un symbole, un espace ou une lettre déjà en minuscule — lcfirst() retourne la chaîne inchangée.
<?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
Attention : lcfirst() est basée sur les octets, pas sur Unicode
lcfirst() ne gère que les lettres ASCII sur un seul octet. Les caractères multi-octets tels que les lettres accentuées ou non-latines ne sont pas correctement mis en minuscule, car la fonction opère sur le premier octet plutôt que sur le premier caractère.
<?php
echo lcfirst("Élan"); // stays "Élan" (É is multibyte)
?>ÉlanPour les chaînes multi-octets, mettez vous-même le premier caractère en minuscule avec mb_strtolower() et mb_substr() :
<?php
$str = "Élan";
$first = mb_strtolower(mb_substr($str, 0, 1), "UTF-8");
echo $first . mb_substr($str, 1); // élan
?>élanFonctions associées
ucfirst()— l'opposé : met le premier caractère en majuscule.ucwords()— met en majuscule la première lettre de chaque mot.strtolower()— met toute la chaîne en minuscule.strtoupper()— met toute la chaîne en majuscule.