Карточка 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 ошибок.