ШАСК - Лаборатория 305

Лабораторная работа №3 (PHP)

Тема: Улучшение работы сайта

Меняем значение переменной

Мы уже умеем писать простые сценарии. Пришло время перейти к более сложным.

В жизни нам часто приходится что-то выбирать. Например, между клубничным и шоколадным мороженым, в зависимости от настроения, дня недели или ретроградности Меркурия. В программировании как в жизни — информация на странице может меняться в зависимости от определённых условий. Например, стоимость товара может зависеть от наличия скидки. Но не будем забегать вперёд.

Программисты подготовили страницу товара специально под акцию «Фиолетовый вторник». Написали код и… уехали в отпуск. Пришло время запустить акцию, поэтому поручаем эту задачу вам.

В коде вы увидите неизвестную конструкцию, но не пугайтесь, разберёмся с ней попозже! Сейчас самое главное — поменять значение переменной $is_violet_tuesday, чтобы акция скорее запустилась.

За дело!

Задание 3.1

  1. Добавьте в файле product.php переменную $is_violet_tuesday после подключения шапки сайта. Запишите в переменную значение false
  2. На следующей строке запишите условие:
  3. product.php
    if ($is_violet_tuesday) {
        require('components/product_violet.php');
    }
  4. Далее обновите страницу в браузере и посмотрите на результат.
  5. После этого поменяйте значение переменной $is_violet_tuesday c false на true.
  6. Вновь обновите страницу в браузере и посмотрите на результат.

Условие if в PHP

Отлично! Мы изменили значение переменной на true, и акция стартовала.

В программировании true значит истина, а false — ложь. Когда мы задали переменной значение true, условие выполнилось и компонент с акцией подключился.

Что за условие? В языке PHP существует специальная конструкция, которая позволяет выполнять какие-то действия в зависимости от выполнения условий. Например, наш компонент с акцией подключился (действие), потому что значение переменной стало true (условие).

Задание 3.2

  1. В файле product.php добавьте две переменные $price = 1000; и $discount = 0;
  2. Ниже напишите условие if () {}
  3. Внутри круглых скобок сравните величину скидки $discount с нулём с помощью знака >
  4. В теле условия выведите надпись: 'Скидка есть!'. Как это сделать, вы должны знать.
  5. Поменяйте размер скидки в переменной $discount на 500 и посмотрите, что выведется на странице товара.

Используем арифметические операторы в PHP

Итак, мы можем определять, есть ли скидка, теперь давайте посчитаем новую цену товара с учётом этой скидки. Результат выведем пока на страницу товара в неоформленном виде.

Посчитать новую цену товара легко. Для этого у нас есть две переменные, в которых хранятся начальная цена и размер скидки — $price и $discount.

В теле условия вычтем скидку из цены товара и запишем результат в новую переменную $price_with_discount.

За работу!

Кстати

В программировании часто используют математические знаки — их называют арифметическими операторами. Например, оператор + складывает значения, оператор * умножает, / делит. Подробнее об этом можно узнать из спецификации языка.

Задание 2.3

  1. В теле условия создайте переменную $price_with_discount Не забудьте поставить ; после имени переменной. 2. Запишите в переменную расчёт цены со скидкой $price - $discount 3. На 14 строке вместо 'Скидка есть!' выведите в консоль переменную $price_with_discount и посмотрите, какое число появилось в консоли. 4. Замените значение $discount с 500 на 700 Обратите внимание, что число на странице поменялось.

Знакомимся с командой $_GET

Мы научились задавать идентификатор в одном месте, но мы не можем каждый раз менять значение для каждого пользователя вручную. Оно должно приходить откуда-то извне. И лучший вариант — адрес, который виден в адресной строке браузера.

В адресе есть специальная часть, которая называется «параметры запроса». Параметры запроса располагаются после знака вопроса.

https://www.gloevk.ru/product.php?product_id=1

В данном примере у нас есть один параметр product_id, а цифра в конце этого адреса — его значение.

Получить параметр запроса можно с помощью команды $_GET, указав в квадратных скобках его название.

echo($_GET['product_id']);
// Получаем значение параметра запроса

Подробную информацию о параметрах запроса и использовании $_GET вы можете получить в учебнике (ссылка).

На следующем шаге используем $_GET['product_id'] для получения артикула товара.

Получаем данные из параметров запроса

На предыдущем шаге мы убедились, что можно получать данные из адреса. Теперь осталось подставить $_GET['product_id'] в значение переменной $id. Так мы получим артикул товара.

$id = $_GET['product_id'];

Как проверить, что наш динамический шаблон работает? Сделать это можно двумя способами.

Самый простой — ещё раз поменять значение параметра запроса в адресной строке.

Второй способ чуть дольше. У нас есть каталог, в котором у каждого товара есть ссылка. В ней уже прописан нужный адрес с правильными параметрами. Об этом позаботились наши верстальщики. Поэтому мы можем перейти на страницу каталога и щёлкнуть по любой ссылке. Браузер перейдёт на страницу этого товара, и мы увидим нужный товар.

Задание 2.4

  1. В файле product.php замените значение переменной $id на $_GET['product_id']
  2. В адресной строке поменяйте число 1 на 9
  3. В браузере перейдите по ссылке на страницу каталога товаров
  4. Щёлкните на третий товар — «Блетуб». Убедитесь, что на странице товара отображается выбранный товар.