W3docs

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): string

Elle accepte un seul paramètre obligatoire et retourne une nouvelle chaîne — lcfirst() ne modifie pas la variable d'origine en place.

ParamètreDescription
$stringLa 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

php— editable, runs on the server

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 GetUserName en getUserName pour 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
?>
userProfile

Comportement 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)
?>
Élan

Pour 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
?>
élan

Fonctions 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.

Pratique

Pratique
Que fait la fonction PHP lcfirst ?
Que fait la fonction PHP lcfirst ?
Was this page helpful?