Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 семестр / Инструм.средства / ЛЕКЦИИ / Лекция №4 Общие понятия и описание PHP.doc
Скачиваний:
54
Добавлен:
17.02.2016
Размер:
186.88 Кб
Скачать

7.3. Инструкция switch-case (конструкция выбора)

Нами осталась незамеченной очень важная конструкция — switch-case. Данная конструкция предназначена для выбора действий, в зависимости от значения указанного выражения. Конструкция switch-case чем-то напоминает оператор if-else, который, по сути, является ее аналогом. Конструкцию выбора нужно использовать, если предполагаемых вариантов много, скажем, больше 5, и для каждого варианта нужно выполнить специфические действия. В этом случае использовать оператор выбора if-else просто неудобно.

Синтаксис switch-case таков:

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

{

case значение1 : команды_1; [break;] ...

case значениеN : команды_N; [break;]

[default: команды_по_умолчанию; [break;]]

}

Альтернативный синтаксис конструкции выглядит так:

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

case значение1: команды1; [break;] ...

case значением N: команды_N; [break;]

[default: команды_по_умолчанию; [break;]]

endswitch;

Работает эта конструкция следующим образом:

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

2. Просматривается набор значений. Пусть значение_1 равно значению выражения, вычисленного на первом шаге. Если не указан оператор break, то будут выполнены команды i, i+1, i+2, ... ,N. В противном случае (есть break) будет выполнена только команда с номером i.

3. Если ни одно значение из набора не совпало со значением выражения, тогда выполняется блок default, если он указан.

Небольшой пример:

<?

$age=?21;

switch ($age)

{

case 20 : echo "Вам двадцать лет\n";

case 21 : echo "Вам двадцать один год\n";

case 22 : echo "Вам двадцать два года\n";

default: echo "Вам $age лет\n";

}

?>

Если переменная $аgе равна 21, тоща будут выведены строки:

Вам двадцать один год

Вам двадцать два года

Вам 21 лет

Ясное дело, что нам нужно, чтобы программа вывела только одну строку, поэтому нужно использовать операторы break:

<?

$age=21;

switch ($age)

{

case 20 : echo "Вам двадцать лет\n"; break;

case 21 : echo "Вам двадцать один год\n"; break;

case 22 : echo "Вам двадцать два года\n"; break;

default: echo "Вам $age лет\n"; break;

}

?>

Если кто-то знает язык Pascal, то в нем была подобная конструкция case, позволяющая указывать диапазоны значений:

case (age)

10..20 : writeln('BaM от 10 до 20 лет');

end;

В PHP такую возможность можно реализовать так (диапазон 20...22):

<?

$age=21;

switch ($age)

{

case 20 :

case 21 :

case 22 : echo "Вам от 20 до 22\n"; break;

}

?>

8. Собираем один скрипт из нескольких отдельных скриптов

8.1. Инструкции require

Данные инструкции позволяют собрать большую программу на несколько отдельных файлов. Инструкция require позволяет включить код до выполнения нашего сценария.

Общий синтаксис инструкции такой: require имя_файла;

Теперь разберемся подробнее, что же делает require. Интерпретатор анализирует сценарий и, найдя require, просто заменяет ее содержимым указанного файла. Это может быть HTML-файл или сценарий на PHP. В последнем случае содержимое файла должно быть обрамлено тегами — как в случае с обыкновенным сценарием. Вставка содержимого файла, происходит ДО выполнения сценария — прочитав следующий пункт, вы заметите разницу.

Очень удобно использовать эту инструкцию для включения HTML-заголовков. Например:

Файл header.html:

<htmlxhead>

<title>My Company's Official Web Page</title>

</head>

<body>

Сценарий:

require header.html

/* тело документа */