Лабораторная работа №3 (PHP)
Тема: Улучшение работы сайта
Меняем значение переменной
Мы уже умеем писать простые сценарии. Пришло время перейти к более сложным.
В жизни нам часто приходится что-то выбирать. Например, между клубничным и шоколадным мороженым, в зависимости от настроения, дня недели или ретроградности Меркурия. В программировании как в жизни — информация на странице может меняться в зависимости от определённых условий. Например, стоимость товара может зависеть от наличия скидки. Но не будем забегать вперёд.
Программисты подготовили страницу товара специально под акцию «Фиолетовый вторник». Написали код и… уехали в отпуск. Пришло время запустить акцию, поэтому поручаем эту задачу вам.
В коде вы увидите неизвестную конструкцию, но не пугайтесь, разберёмся с ней попозже! Сейчас самое главное — поменять значение переменной $is_violet_tuesday, чтобы акция скорее запустилась.
За дело!
Задание 3.1
- Добавьте в файле product.php переменную $is_violet_tuesday после подключения шапки сайта. Запишите в переменную значение false
- На следующей строке запишите условие:
- Далее обновите страницу в браузере и посмотрите на результат.
- После этого поменяйте значение переменной $is_violet_tuesday c false на true.
- Вновь обновите страницу в браузере и посмотрите на результат.
if ($is_violet_tuesday) {
require('components/product_violet.php');
}
Условие if в PHP
Отлично! Мы изменили значение переменной на true, и акция стартовала.
В программировании true значит истина, а false — ложь. Когда мы задали переменной значение true, условие выполнилось и компонент с акцией подключился.
Что за условие? В языке PHP существует специальная конструкция, которая позволяет выполнять какие-то действия в зависимости от выполнения условий. Например, наш компонент с акцией подключился (действие), потому что значение переменной стало true (условие).
Задание 3.2
- В файле product.php добавьте две переменные $price = 1000; и $discount = 0;
- Ниже напишите условие if () {}
- Внутри круглых скобок сравните величину скидки $discount с нулём с помощью знака >
- В теле условия выведите надпись: 'Скидка есть!'. Как это сделать, вы должны знать.
- Поменяйте размер скидки в переменной $discount на 500 и посмотрите, что выведется на странице товара.
Используем арифметические операторы в PHP
Итак, мы можем определять, есть ли скидка, теперь давайте посчитаем новую цену товара с учётом этой скидки. Результат выведем пока на страницу товара в неоформленном виде.
Посчитать новую цену товара легко. Для этого у нас есть две переменные, в которых хранятся начальная цена и размер скидки — $price и $discount.
В теле условия вычтем скидку из цены товара и запишем результат в новую переменную $price_with_discount.
За работу!
Кстати
В программировании часто используют математические знаки — их называют арифметическими операторами. Например, оператор + складывает значения, оператор * умножает, / делит. Подробнее об этом можно узнать из спецификации языка.
Задание 2.3
- В теле условия создайте переменную $price_with_discount Не забудьте поставить ; после имени переменной. 2. Запишите в переменную расчёт цены со скидкой $price - $discount 3. На 14 строке вместо 'Скидка есть!' выведите в консоль переменную $price_with_discount и посмотрите, какое число появилось в консоли. 4. Замените значение $discount с 500 на 700 Обратите внимание, что число на странице поменялось.
Знакомимся с командой $_GET
Мы научились задавать идентификатор в одном месте, но мы не можем каждый раз менять значение для каждого пользователя вручную. Оно должно приходить откуда-то извне. И лучший вариант — адрес, который виден в адресной строке браузера.
В адресе есть специальная часть, которая называется «параметры запроса». Параметры запроса располагаются после знака вопроса.
https://www.gloevk.ru
В данном примере у нас есть один параметр product_id, а цифра в конце этого адреса — его значение.
Получить параметр запроса можно с помощью команды $_GET, указав в квадратных скобках его название.
echo($_GET['product_id']);
// Получаем значение параметра запроса
Подробную информацию о параметрах запроса и использовании $_GET вы можете получить в учебнике (ссылка).
На следующем шаге используем $_GET['product_id'] для получения артикула товара.
Получаем данные из параметров запроса
На предыдущем шаге мы убедились, что можно получать данные из адреса. Теперь осталось подставить $_GET['product_id'] в значение переменной $id. Так мы получим артикул товара.
$id = $_GET['product_id'];
Как проверить, что наш динамический шаблон работает? Сделать это можно двумя способами.
Самый простой — ещё раз поменять значение параметра запроса в адресной строке.
Второй способ чуть дольше. У нас есть каталог, в котором у каждого товара есть ссылка. В ней уже прописан нужный адрес с правильными параметрами. Об этом позаботились наши верстальщики. Поэтому мы можем перейти на страницу каталога и щёлкнуть по любой ссылке. Браузер перейдёт на страницу этого товара, и мы увидим нужный товар.
Задание 2.4
- В файле product.php замените значение переменной $id на $_GET['product_id']
- В адресной строке поменяйте число 1 на 9
- В браузере перейдите по ссылке на страницу каталога товаров
- Щёлкните на третий товар — «Блетуб». Убедитесь, что на странице товара отображается выбранный товар.