lcfirst()
Artículo sobre la función PHP lcfirst(), que convierte el primer carácter de una cadena a minúscula. Útil para trabajar con identificadores y formatos.
La función PHP lcfirst() convierte el primer carácter de una cadena a minúscula y devuelve la cadena modificada. Solo se modifica el primer carácter; el resto de la cadena se deja exactamente como está. Esta página cubre su sintaxis, valor de retorno, comportamiento con caracteres no alfabéticos y Unicode, y las situaciones comunes en las que resulta útil.
Sintaxis
lcfirst(string $string): stringAcepta un único parámetro obligatorio y devuelve una cadena nueva — lcfirst() no modifica la variable original en su lugar.
| Parámetro | Descripción |
|---|---|
$string | La cadena de entrada cuyo primer carácter debe convertirse a minúscula. |
Valor de retorno: la cadena resultante con su primer carácter en minúscula.
Ejemplo básico
Solo cambia la H inicial; el resto queda intacto:
hello World!¿Cuándo usarla?
lcfirst() es pequeña pero útil cuando el primer carácter tiene un significado especial:
- Generar identificadores camelCase. Convierte
GetUserNameengetUserNamepara nombres de métodos o propiedades. - Normalizar entrada del usuario que puede llegar en mayúscula cuando se almacena en minúscula.
- Formato de oraciones o listas, donde la primera palabra de un fragmento no debe comenzar con mayúscula.
<?php
// PascalCase -> camelCase
echo lcfirst("UserProfile"); // userProfile
?>userProfileComportamiento con caracteres no alfabéticos y entrada ya en minúscula
Si el primer carácter no es una letra mayúscula — un dígito, símbolo, espacio o una letra ya en minúscula — lcfirst() devuelve la cadena sin cambios.
<?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
Advertencia: lcfirst() trabaja por bytes, no es compatible con Unicode
lcfirst() solo maneja letras ASCII de un solo byte. Los caracteres multibyte, como letras acentuadas o no latinas, no se convierten correctamente a minúscula, ya que la función opera sobre el primer byte en lugar del primer carácter.
<?php
echo lcfirst("Élan"); // stays "Élan" (É is multibyte)
?>ÉlanPara cadenas multibyte, convierte el primer carácter a minúscula manualmente con mb_strtolower() y mb_substr():
<?php
$str = "Élan";
$first = mb_strtolower(mb_substr($str, 0, 1), "UTF-8");
echo $first . mb_substr($str, 1); // élan
?>élanFunciones relacionadas
ucfirst()— la opuesta: convierte el primer carácter a mayúscula.ucwords()— pone en mayúscula la primera letra de cada palabra.strtolower()— convierte toda la cadena a minúscula.strtoupper()— convierte toda la cadena a mayúscula.