W3docs

lcfirst()

Статья о функции PHP lcfirst(), которая переводит первый символ строки в нижний регистр. Синтаксис, примеры и особенности работы.

Функция PHP lcfirst() делает первый символ строки строчным и возвращает изменённую строку. Затрагивается только самый первый символ — остальная часть строки остаётся без изменений. На этой странице описаны синтаксис, возвращаемое значение, поведение с нелитерными символами и Unicode, а также типичные ситуации, в которых эта функция полезна.

Синтаксис

lcfirst(string $string): string

Функция принимает один обязательный параметр и возвращает новую строку — lcfirst() не изменяет исходную переменную на месте.

ПараметрОписание
$stringВходная строка, первый символ которой нужно перевести в нижний регистр.

Возвращаемое значение: результирующая строка с первым символом в нижнем регистре.

Базовый пример

php— editable, runs on the server

Изменяется только первая буква 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() — переводит всю строку в верхний регистр.

Практика

Практика
Что делает функция PHP lcfirst()?
Что делает функция PHP lcfirst()?
Was this page helpful?