PHP

Задачи по PHP для начинающих

Лучший способ начать писать на PHP — решать маленькие задачи, где сразу видно входные данные, действие и результат. В этой подборке задачи идут от простых переменных до формы и вывода на страницу. Их можно проходить без фреймворков: достаточно PHP, локального сервера или обычного запуска через консоль

Не пытайтесь решить все за один вечер. Возьмите 2-3 задачи, напишите код руками, проверьте результат, потом измените входные данные. Если код работает только на одном идеальном примере, задача еще не закрепилась

По этой теме полезно отдельно посмотреть Задачи по PHP для начинающих с решениями, чтобы расширить контекст и сравнить подходы

По этой теме полезно отдельно посмотреть Задачи на PHP с решениями: базовые упражнения, чтобы расширить контекст и сравнить подходы

Как пользоваться подборкой

Для каждой задачи есть четыре опоры: что тренируем, условие, ожидаемый результат и подсказка. Сначала решайте без подсказки. Если застряли больше чем на 15-20 минут, прочитайте подсказку и попробуйте снова

Для консольных примеров можно создать файл task.php и запускать его так:

php task.php

Для задач с формой удобнее запустить встроенный сервер PHP:

php -S localhost:8000

После этого файл можно открыть в браузере по адресу http://localhost:8000/task.php

Блок 1. Переменные, строки и числа

Задача 1. Приветствие пользователя

Что тренируем: переменные, строку и вывод через echo

Условие: создайте переменную $name со значением имени и выведите фразу Привет, Анна

Ожидаемый результат:

Привет, Анна

Подсказка: строку можно склеить через точку или подставить значение внутрь двойных кавычек

Самопроверка: поменяйте имя на другое и убедитесь, что меняется только имя в выводе

Задача 2. Сумма заказа

Что тренируем: числа, умножение и итоговую переменную

Условие: есть цена товара $price = 500 и количество $count = 3. Посчитайте итоговую сумму заказа

Ожидаемый результат:

1500

Подсказка: создайте отдельную переменную $total, чтобы не писать расчет прямо в echo

Самопроверка: поставьте количество 0, затем 5, и заранее предскажите результат

Задача 3. Цена со скидкой

Что тренируем: проценты и аккуратный расчет

Условие: товар стоит 2000, скидка 15%. Посчитайте цену после скидки

Ожидаемый результат:

1700

Подсказка: скидку можно посчитать как $price * $discount / 100, а потом вычесть из цены

Самопроверка: проверьте скидку 0% и 100%

Блок 2. Условия

Задача 4. Проверка возраста

Что тренируем: if, else, сравнение чисел

Условие: есть возраст пользователя. Если ему 18 или больше, выведите Доступ открыт, иначе Доступ закрыт

Ожидаемый результат для $age = 17:

Доступ закрыт

Подсказка: используйте условие $age >= 18

Самопроверка: проверьте значения 17, 18, 19

Задача 5. Проверка пустого имени

Что тренируем: пустую строку и пользовательское сообщение

Условие: если $name пустой, выведите Введите имя. Если имя есть, выведите приветствие

Подсказка: для начала достаточно сравнить $name === ''

Самопроверка: проверьте пустую строку, обычное имя и строку из пробелов. Для пробелов попробуйте trim()

Задача 6. Оценка по баллам

Что тренируем: несколько веток if, elseif, else

Условие: если баллов 90 или больше, вывести Отлично; от 60 до 89 — Зачет; меньше 60 — Повторить

Подсказка: проверяйте условия сверху вниз, от самого высокого порога к низкому

Самопроверка: проверьте 59, 60, 89, 90

Блок 3. Массивы и циклы

Задача 7. Вывести список товаров

Что тренируем: обычный массив и foreach

Условие: создайте массив товаров и выведите каждый товар с новой строки

Минимальная основа:

<?php
$products = ['Книга', 'Курс', 'Консультация'];

foreach ($products as $product) {
    echo $product . PHP_EOL;
}

Самопроверка: добавьте четвертый товар и убедитесь, что цикл не нужно менять

Задача 8. Посчитать сумму чисел в массиве

Что тренируем: цикл, накопитель, сложение

Условие: есть массив [1200, 800, 450]. Посчитайте общую сумму

Ожидаемый результат:

2450

Подсказка: до цикла создайте $total = 0, внутри цикла прибавляйте каждое значение

Самопроверка: проверьте пустой массив. Итог должен остаться 0

Задача 9. Найти товары дороже 1000

Что тренируем: массив, цикл и условие внутри цикла

Условие: есть цены [500, 1200, 3000, 700]. Выведите только цены больше 1000

Ожидаемый результат:

1200
3000

Подсказка: внутри foreach используйте if ($price > 1000)

Самопроверка: проверьте массив, где все цены меньше 1000

Задача 10. Ассоциативный массив пользователя

Что тренируем: ключи массива

Условие: создайте пользователя с полями name, email, role. Выведите имя и роль

Подсказка: обращение к полю выглядит так: $user['name']

Самопроверка: добавьте поле active и выведите сообщение только для активного пользователя

Блок 4. Функции

Задача 11. Функция расчета скидки

Что тренируем: функцию, параметры и return

Условие: напишите функцию applyDiscount($price, $percent), которая возвращает цену после скидки

Проверка:

<?php
echo applyDiscount(2000, 15);

Ожидаемый результат:

1700

Подсказка: функция не должна сама печатать результат. Пусть она возвращает число, а вывод будет снаружи

Самопроверка: вызовите функцию три раза с разными ценами

Задача 12. Функция проверки email

Что тренируем: функцию и готовый фильтр PHP

Условие: напишите функцию, которая принимает email и возвращает true, если email похож на корректный

Подсказка: используйте filter_var($email, FILTER_VALIDATE_EMAIL)

Самопроверка: проверьте test@example.com, test, пустую строку

Задача 13. Функция форматирования цены

Что тренируем: отдельную функцию для вывода

Условие: функция принимает число 12500 и возвращает строку 12 500 руб

Подсказка: посмотрите на number_format()

Самопроверка: проверьте 990, 12500, 1500000

Блок 5. Формы и вывод на страницу

Задача 14. Получить имя из формы

Что тренируем: $_POST, проверку пустого значения и безопасный вывод

Условие: сделайте форму с полем name. После отправки выведите приветствие

Подсказка: значение из формы нужно выводить через htmlspecialchars(), чтобы не печатать опасный HTML как код страницы

Самопроверка: отправьте обычное имя, пустую строку и строку <b>test</b>

Задача 15. Мини-калькулятор заказа

Что тренируем: форму, числа, проверку и расчет

Условие: форма принимает цену и количество. После отправки показывает итоговую сумму

Подсказка: преобразуйте значения к числам и проверьте, что цена и количество больше нуля

Самопроверка: проверьте цену 500 и количество 3, затем ноль, пустое поле и текст вместо числа

Как проверять свои решения

Проверяйте не только красивый сценарий. Для каждой задачи держите три набора данных: обычное значение, пустое значение и крайний случай. Например, для возраста это 17, 18, 0; для массива — три элемента, один элемент и пустой массив

Если задача связана с выводом на страницу, смотрите HTML в браузере и исходный код страницы. Если значение пришло от пользователя, выводите его через htmlspecialchars(). Для учебных задач это кажется лишним, но привычка важная

Если код не работает, читайте ошибку снизу вверх. В PHP обычно видно файл, номер строки и тип проблемы. Не переписывайте весь файл сразу: исправьте одну строку, запустите снова, потом переходите к следующей ошибке

Частые ошибки новичков

  • писать расчет прямо внутри echo, из-за чего код трудно проверить
  • забывать точку при склеивании строк
  • путать = и ==
  • не проверять пустые значения из формы
  • выводить пользовательский текст без htmlspecialchars()
  • менять массив внутри цикла без необходимости
  • писать функцию, которая и считает, и сразу выводит результат
  • решать задачу только на одном примере

Что делать дальше

После этих задач соберите маленький проект: список товаров, форма добавления товара, расчет итоговой суммы и вывод таблицы. Такой проект связывает переменные, массивы, циклы, функции и форму в одну понятную практику

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x