lcfirst()
Статья о функции PHP lcfirst(), которая переводит первый символ строки в нижний регистр. Синтаксис, примеры и особенности работы.
Функция PHP lcfirst() делает первый символ строки строчным и возвращает изменённую строку. Затрагивается только самый первый символ — остальная часть строки остаётся без изменений. На этой странице описаны синтаксис, возвращаемое значение, поведение с нелитерными символами и Unicode, а также типичные ситуации, в которых эта функция полезна.
Синтаксис
lcfirst(string $string): stringФункция принимает один обязательный параметр и возвращает новую строку — lcfirst() не изменяет исходную переменную на месте.
| Параметр | Описание |
|---|---|
$string | Входная строка, первый символ которой нужно перевести в нижний регистр. |
Возвращаемое значение: результирующая строка с первым символом в нижнем регистре.
Базовый пример
Изменяется только первая буква H; остальное остаётся без изменений:
hello World!Когда это использовать?
lcfirst() — небольшая, но удобная функция, когда первый символ имеет особое значение:
- Генерация идентификаторов в camelCase. Превращает
GetUserNameвgetUserNameдля имён методов или свойств. - Нормализация пользовательского ввода, который может поступать с заглавной буквы, тогда как вы храните его в нижнем регистре.
- Форматирование предложений/списков, когда первое слово фрагмента не должно начинаться с заглавной буквы.
<?php
// PascalCase -> camelCase
echo lcfirst("UserProfile"); // userProfile
?>userProfileПоведение с нелитерными символами и уже строчным вводом
Если первый символ не является заглавной буквой — цифра, символ, пробел или уже строчная буква — lcfirst() возвращает строку без изменений.
<?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
Важно: lcfirst() работает на уровне байтов, а не Unicode
lcfirst() обрабатывает только однобайтовые ASCII-буквы. Многобайтовые символы, такие как буквы с диакритическими знаками или не-латинские буквы, не переводятся в нижний регистр корректно, поскольку функция работает с первым байтом, а не с первым символом.
<?php
echo lcfirst("Élan"); // stays "Élan" (É is multibyte)
?>ÉlanДля многобайтовых строк переведите первый символ в нижний регистр самостоятельно с помощью mb_strtolower() и mb_substr():
<?php
$str = "Élan";
$first = mb_strtolower(mb_substr($str, 0, 1), "UTF-8");
echo $first . mb_substr($str, 1); // élan
?>élanСвязанные функции
ucfirst()— противоположная функция: делает первый символ заглавным.ucwords()— делает заглавной первую букву каждого слова.strtolower()— переводит всю строку в нижний регистр.strtoupper()— переводит всю строку в верхний регистр.