В этом тренажере мы познакомимся с одной из базовых, но очень важных функций PHP — `strlen()`. Она позволяет узнать длину строки, что необходимо в множестве задач: от проверки длины пароля до форматирования текста. Кажется, что может быть проще? Но, как и у многих функций, у `strlen()` есть свои особенности.
Вам предстоит пройти путь от самых простых примеров использования до решения задач, которые раскрывают неочевидные аспекты работы этой функции. Вы будете предсказывать результаты, исправлять ошибки в коде, собирать рабочие скрипты из частей и заполнять пропуски, чтобы закрепить синтаксис. После прохождения этого набора заданий вы будете уверенно использовать `strlen()` и знать о её "подводных камнях", например, как она работает с разными языками и типами данных.
- Модуль 1: Основы синтаксиса PHP
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Модуль 4: Условные конструкции
- Модуль 5: Циклы
- Модуль 6: Массивы
- Индексированные массивы.
- Ассоциативные массивы.
- Многомерные массивы.
- Добавление элементов в массив.
- Удаление элементов из массива.
- Функция count().
- Функция array_push() и array_pop().
- Функция array_shift() и array_unshift().
- Функция array_merge().
- Функция array_slice().
- Функция array_splice().
- Функция in_array().
- Функция array_search().
- Функция array_keys() и array_values().
- Функция array_unique().
- Функция array_reverse().
- Сортировка: sort(), rsort().
- Сортировка: asort(), arsort().
- Сортировка: ksort(), krsort().
- Функция array_map().
- Функция array_filter().
- Функция array_reduce().
- Функция array_walk().
- Функция array_column().
- Деструктуризация массивов.
- Модуль 7: Функции
- Объявление функций.
- Вызов функций.
- Параметры функций.
- Возврат значений return.
- Значения параметров по умолчанию.
- Передача по значению.
- Передача по ссылке.
- Переменное количество аргументов.
- Оператор распаковки ....
- Типизация параметров.
- Типизация возвращаемых значений.
- Nullable типы.
- Union типы (PHP 8).
- Именованные аргументы (PHP 8).
- Анонимные функции.
- Стрелочные функции.
- Замыкания и use.
- Рекурсивные функции.
- Глобальные переменные в функциях.
- Статические переменные в функциях.
- Модуль 8: Работа со строками
- Одинарные и двойные кавычки.
- Экранирование символов.
- Heredoc и Nowdoc синтаксис.
- Функция strlen().
- Функция substr().
- Функция str_replace().
- Функция strpos() и strrpos().
- Функция explode() и implode().
- Функция trim(), ltrim(), rtrim().
- Функция strtolower() и strtoupper().
- Функция ucfirst() и ucwords().
- Функция str_repeat().
- Модуль 9: Суперглобальные переменные
- Модуль 10: Работа с формами
- Модуль 11: Работа с файлами
- Модуль 12: Дата и время
- Модуль 13: Регулярные выражения
- Модуль 14: Сессии и Cookie
- Модуль 15: Include и Require
- Модуль 16: Объектно-ориентированное программирование
- Модуль 17: Пространства имен
- Модуль 18: Обработка ошибок и исключений
- Модуль 19: Работа с JSON и XML
- Модуль 20: Работа с базами данных MySQLi
- Модуль 21: PDO - PHP Data Objects
- Модуль 22: Composer и зависимости
- Модуль 23: cURL и HTTP запросы
- Модуль 24: REST API
- Модуль 25: Безопасность
- Модуль 26: Генераторы и итераторы
- Модуль 27: Reflection API
- Модуль 28: Работа с изображениями
- Модуль 29: Отправка email
- Модуль 30: Паттерны проектирования
- Модуль 31: Тестирование
- Модуль 32: Продвинутые возможности PHP 8+
Самый первый замер
Давайте начнем с простого. Перед вами код, который использует функцию `strlen()` для определения длины строки "Hello". Напишите в поле ответа число, которое выведет этот код.
<?php
echo strlen("Hello");
?>Длина пустой строки
А что, если строка не содержит ни одного символа? Выберите из предложенных вариантов тот, который, по вашему мнению, вернет функция `strlen()` для пустой строки.
<?php
echo strlen("");
?>Вспомним имя функции
Теперь давайте потренируем синтаксис. В коде пропущено название функции для определения длины строки. Впишите его в поле ввода, чтобы код заработал правильно и вывел на экран число 11.
<?php
$phrase = "Hello World";
echo input1S($phrase);
?>Исправь опечатку
Программисты часто допускают опечатки. В этом коде в названии функции допущена ошибка, из-за которой скрипт не выполнится. Найдите и исправьте строку с ошибкой.
<?php$word = "Correct";echo str_len($word);?>Считаются ли пробелы?
Мы уже знаем, как посчитать длину слова. А как насчет пробелов? Являются ли они частью строки и учитывает ли их `strlen()`? Определите, какой результат выведет код, и впишите его в ответ.
<?php
$text = " php ";
echo strlen($text);
?>Сложности с кириллицей
Это задание с подвохом. Как вы думаете, какую длину вернет `strlen()` для русского слова "Мир"? Выберите правильный вариант. Результат может вас удивить.
<?php
// Кодировка файла UTF-8
echo strlen("Мир");
?>Сопоставьте строку и её длину
Давайте закрепим полученные знания. Сопоставьте каждую строку в левой колонке с её правильной длиной (результатом работы `strlen()`) из правой колонки. Перетащите элементы правой колонки так, чтобы они соответствовали строкам слева.
Сборка условия из банка
Часто `strlen()` используют в условиях. Соберите из "банка" фрагментов кода рабочую конструкцию `if`, которая проверяет, что длина пароля в переменной `$password` строго больше 8 символов.
<?php
$password = "secret12345";
if (input1S(input2S) input3S 8) {
echo "Пароль достаточно длинный.";
}
?>Соберите скрипт проверки имени
Соберите из разбросанных частей небольшой, но полноценный скрипт. Скрипт должен объявить переменную `$username`, получить её длину, а затем с помощью `if-else` вывести сообщение "Имя подходит", если длина больше или равна 5, или "Имя слишком короткое" в противном случае.
} else {$username = "User";echo "Имя слишком короткое";<?php echo "Имя подходит";if (strlen($username) >= 5) {?>}$name = "User";if ($username >= 5) {$len = count($username);