Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Переключатели в PHP.docx
Скачиваний:
3
Добавлен:
17.07.2019
Размер:
53.15 Кб
Скачать

Переключатели в PHP

Во всех языках мира есть слово «включатель», и только в русском — «выключатель»! Михаил Задорнов

Сегодня мы поговорим о таком элементе синтаксиса PHP, как переключатели. Не стоит путать его с HTML-тегом <input type="radio">, который тоже создаёт переключатели. Итак,

Оператор switch

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

Пример 1. HTML-страница с формой:

<html>

<title>Соцопрос</title>

<body>

<form action="cup6.php">

Введите Вашу оценку по русскому языку:<br>

<input type="text" name="score" value="" maxlength=1><br>

<input type="submit" value=" хм... ">

</form>

</body>

</html>

А вот код обработчика:

Пример 2. Обработчик формы (файл cup6.php):

<?php if (!$score) {

echo ("Вы всё-таки введите оценку-то...");

} elseif ($score==1) {

echo ("Ужас!");

} elseif ($score==2) {

echo ("Неуд %-(");

} elseif ($score==3) {

echo ("Уд...");

} elseif ($score==4) {

echo ("Хорошо");

} elseif ($score==5) {

echo ("Отлично!");

} else {

echo ("Интересная оценка...");

} ?>

Думаю, что все вы легко разобрались с кодом и поняли как он действует. Вообще говоря, код этот правильный, и в нём нет ошибок (вроде бы...), но уж очень он неудобен: целая куча условий, уследить где что достаточно тяжело. Что же делать? Сейчас нам и пригодится переключатель switch.

Внешний вид переключателя такой:

Пример 3. Внешний вид переключателя switch:

switch (выражение) {

case значение1:

// команды, которые выполняются, если выражение = значение1

break; // необязательно

case значение2:

// команды, которые выполняются, если выражение = значение2

break; // необязательно

...

default:

// команды, которые выполняются, если не было найдено

// ни одного совпадения

break; // необязательно

}

Как действует весь этот блок:

  1. Вычисляется значение выражения.

  2. Значение выражения сверяется со значением 1. Если они равны, то выполняется код, находящийся после команды case значение1:

  3. Если не значение выражения не равно значению 1 оно сверяется со значением 2, 4 и так далее.

  4. Если не было найдено ни одного совпадения, то выполняется код блока default.

Блок default не является обязательным: его можно не указывать.

Команда break(); после каждого блока кода нужна для того, чтобы после того, как код был выполнен, все последующие case-ы просто пропускались.

Теперь давайте изменим код второго примера на более удобный! Например, такой:

Пример 4. Изменённый код примера 2 (файл cup6.php):

<?php switch ($score) {

case 0:

echo ("Вы всё-таки введите оценку-то...");

break;

case 1:

echo ("Ужас!");

break;

case 2:

echo ("Неуд %-(");

break;

case 3:

echo ("Уд...");

break;

case 4:

echo ("Хорошо");

break;

case 5:

echo ("Отлично!");

break;

default:

echo ("Интересная оценка...");

} ?>

Вот так. Просто и удобно. Результаты этой работы изображены на рисунках:

До После

Подключение

Зачастую гораздо удобнее разбить код на несколько частей и выводить их в нужных местах. Чтобы включить содержимое одного файла в другой файл мы можем пользоваться двумя командами: require(); и include();

require()

Внешний вид команды:

Пример 6. Внешний вид команды require():

require("имя файла");

Перед началом выполнения скрипта PHP находит все команды require(); и заменяет их (команды) на содержимое указанного файла.

Замена происходит только один раз перед началом работы скрипта, так что Вы не сможете включить команду require(); в тело цикла!

Файл, который Вы подключаете командой require(); может содержать в себе PHP-код. Этот код будет выполнен.

include()

Внешний вид команды:

Пример 7. Внешний вид команды include():

include("имя файла");

Команда include(); вставляет и выполняет содержимое указанного файла, причём происходит это во время выполнения скрипта каждый раз при встрече команды inlcude();.

Несмотря на явную схожесть, команды require(); и include(); серьёзно различаются: команда require(); выполняется единожды перед началом выполнения скрипта, а команда inlcude(); каждый раз когда встречается в коде и Вы легко можете помещать команду inlcude(); в циклы.

Как это может помочь в жизни: почти на каждом сайте есть такие части страницы, которые не изменяются во всём сайте — это, например, header (заголовок, шапка) сайта и footer («подвал», низ) сайта. Чтобы не печатать их в каждой странице заново стоит вынести их в два отдельных файла (например, header.php и footer.php) и подключать по мере необходимости.

Код такой страницы может выглядеть, например, так:

Пример 8. Подключение заголовка и низа страницы из внешних файлов:

<?php require("header.php");

// здесь находится текст текущей страницы

require("footer.php"); ?>

Использование require() в этом примере предпочтительнее: мы ведь включаем эти файлы только один раз.

require_once() и inlcude_once()

Если Вам нужно сделать так, чтобы некоторый файл включался в код только один раз, то вместо require(); и include(); нужно использовать require_once(); и require_once();

Посмотрите примеры:

Пример 9. Двойное использование include_once():

<?php include_once("top.php");

// здесь какой-нибудь код

include_once("top.php"); ?>

В предыдущем примере файл top.php будет включён в код страницы только один раз, несмотря на то, что в коде есть две команды.

Вот и всё...

Ну вот, вроде бы и всё, что я хотел рассказать Вам на сегодня. Будут какие-нибудь проблемы с PHP — пишите мне, я помогу!

В качестве домашнего задания: сделать простейший калькулятор. В качестве подсказки, вот Вам рисунок:

И вот ещё что: стоит ли вообще задавать подобные «домашние задания»?

Успехов Вам!

Ни для кого не является секретом, что наиболее распространенным способом взаимодействия html-страницы с сайтом является форма. Форма (то есть html-элемент образуемый тегом form) используется и бесплатными почтовыми службами, электронными магазинами и многими другими типами сайтов.

Обработка простых форм посредством PHP не представляет никакого труда. Однако время от времени возникает потребность обработать форму, содержащую несколько однотипных полей, притом, что их количество может изменяться в широком диапазоне и их количество заранее не известно. В PHP предусмотрено для таких случаев обработка однотипных полей как массива значений. Рассмотрим подробнее варианты для разных типов полей.