Цикл `for` — один из самых распространенных и мощных инструментов в PHP для выполнения повторяющихся действий. Его особенность в том, что он идеально подходит для ситуаций, когда мы заранее знаем, сколько раз нужно выполнить определенный блок кода. Представьте, что вам нужно вывести числа от 1 до 100 или обработать первые 10 элементов массива — для таких задач `for` является лучшим выбором.
В этом тренажере мы пройдем путь от основ синтаксиса до практических примеров. Вы научитесь правильно конструировать цикл, избегать частых ошибок, таких как "ошибка на единицу" или бесконечные циклы, и применять `for` для решения реальных задач, например, для перебора элементов массива. Задания построены по принципу "от простого к сложному", чтобы вы могли постепенно наращивать свои знания и уверенность.
- Модуль 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().
- Деструктуризация массивов.
- Iterator интерфейс
- Модуль 7: Функции
- Объявление функций.
- Вызов функций.
- Параметры функций.
- Возврат значений return.
- Значения параметров по умолчанию.
- Передача по значению.
- Передача по ссылке.
- Переменное количество аргументов.
- Оператор распаковки ....
- Типизация параметров.
- Типизация возвращаемых значений.
- Nullable типы.
- Union типы (PHP 8).
- Именованные аргументы (PHP 8).
- Анонимные функции.
- Стрелочные функции.
- Замыкания и use.
- Рекурсивные функции.
- Глобальные переменные в функциях.
- Статические переменные в функциях.
- IteratorAggregate интерфейс
- Модуль 8: Работа со строками
- Одинарные и двойные кавычки.
- Экранирование символов.
- Heredoc и Nowdoc синтаксис.
- Функция strlen().
- Функция substr().
- Функция str_replace().
- Функция strpos() и strrpos().
- Функция explode() и implode().
- Функция trim(), ltrim(), rtrim().
- Функция strtolower() и strtoupper().
- Функция ucfirst() и ucwords().
- Функция str_repeat().
- Функция htmlspecialchars().
- Модуль 9: Суперглобальные переменные
- Модуль 10: Работа с формами
- Модуль 11: Работа с файлами
- Модуль 12: Дата и время
- Модуль 13: Регулярные выражения
- Модуль 14: Сессии и Cookie
- Модуль 15: Include и Require
- Модуль 16: Объектно-ориентированное программирование
- Модуль 17: Пространства имен
- Модуль 18: Обработка ошибок и исключений
- Модуль 19: Работа с JSON и XML
- Модуль 21: PDO - PHP Data Objects
- Модуль 22: Composer и зависимости
- Модуль 23: cURL и HTTP запросы
- Модуль 24: REST API
- Модуль 25: Безопасность
- Модуль 28: Работа с изображениями
- Модуль 29: Отправка email
- Модуль 30: Паттерны проектирования
- Модуль 31: Тестирование
- Модуль 32: Продвинутые возможности PHP 8+
1. Основы синтаксиса цикла for
Цикл `for` имеет строгую структуру, состоящую из трех выражений в круглых скобках, разделенных точкой с запятой. Заполните пропуски, чтобы создать простейший цикл, который выводит числа от 0 до 4.
<?php
for (input1S; input2S; input3S) {
echo $i . " ";
}
?>2. Сборка цикла из фрагментов
Перед вами перемешанные строки кода. Соберите из них работающий скрипт, который использует цикл `for` для вывода чисел от 1 до 3 включительно. Лишние фрагменты использовать не нужно.
echo $i;<?php}for ($i = 1; $i <= 3; $i++) {?>while ($i <= 3) {echo "Done";3. Предскажите результат выполнения
Внимательно изучите код. Цикл начинается с 1, и на каждой итерации к переменной `$text` добавляется символ "A". Какой будет итоговая строка, выведенная на экран? Введите результат в поле ответа.
<?php
$text = "";
for ($i = 1; $i <= 4; $i++) {
$text .= "A";
}
echo $text;
?>4. Найдите синтаксическую ошибку
В этом коде допущена одна очень распространенная ошибка в объявлении цикла `for`. Вместо правильных разделителей между тремя частями цикла используется другой символ. Найдите и исправьте строку с ошибкой.
<?php// Вывести числа от 0 до 9for ($i = 0, $i < 10, $i++) { echo $i;}?>5. Обратный отсчет
Этот цикл `for` использует декремент (`$i--`) для ведения обратного отсчета. Проанализируйте его начальное значение, условие и шаг, чтобы определить, какую последовательность чисел он выведет. Выберите правильный вариант.
<?php
for ($i = 3; $i > 0; $i--) {
echo $i . " ";
}
?>6. Цикл с нестандартным шагом
Циклы `for` не обязаны изменять счетчик на единицу. Вы можете задать любой шаг. Заполните пропуски так, чтобы цикл вывел все четные числа от 2 до 10 включительно.
<?php
// Вывод четных чисел от 2 до 10
for ($i = 2; input1S; input2S) {
echo $i . " ";
}
?>7. Исправьте логическую ошибку
Код должен был вывести сумму чисел от 1 до 5 (результат должен быть 15), но выводит неверное значение. В коде есть логическая ошибка, известная как "ошибка на единицу". Найдите строку с ошибкой и исправьте ее.
<?php$sum = 0;for ($i = 1; $i < 5; $i++) { $sum += $i;}echo $sum; // Ожидаемый результат: 15?>8. Восстановите порядок вычисления факториала
Факториал числа N — это произведение всех натуральных чисел от 1 до N. Расставьте строки кода в правильном порядке, чтобы вычислить факториал числа 4 (1 * 2 * 3 * 4 = 24).
echo $factorial;for ($i = 1; $i <= $n; $i++) {}$factorial = 1;$n = 4;$factorial *= $i;<?php?>9. Перебор массива с помощью for
Цикл `for` часто используется для перебора элементов индексированного массива. Чтобы это сделать, цикл должен работать от индекса 0 до последнего индекса массива. Заполните пропуски, используя элементы из "банка токенов", чтобы вывести все элементы массива.
<?php
$fruits = ["Apple", "Banana", "Cherry"];
$arraySize = count($fruits);
for ($i = 0; $i < input1S; input2S) {
echo $fruits[$i] . "\n";
}
?>