Карточка Junior Строки спрашивают часто обновлено

Байты и символы в PHP

Вопрос

Почему в PHP нужны функции mb_*?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

Строка PHP это массив байтов без информации о кодировке. Обычные strlen, substr, strtoupper, strsplit, $s[$i] работают с байтами.

Ответ

Строка PHP это массив байтов без информации о кодировке. Обычные strlen, substr, strtoupper, str_split, $s[$i] работают с байтами. В UTF-8 кириллица занимает 2 байта, эмодзи 4, поэтому для текста нужны mb_strlen, mb_substr, mb_strtoupper, mb_str_split.

Разбор

В PHP 8.4 добавили mb_trim, mb_ucfirst. Для сложных задач (нормализация, сортировка по алфавиту) расширение intl.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.