Урок 7. Умовна конструкція switch()

Конструкція switch() дуже схожа на повний запис if, в якому є 1 або декілька elseif. Основне завдання даної конструкції – перевірка різних збігів. Конструкцію switch(), як правило, застосовують у випадках, коли змінна може мати різні значення і необхідно виконати певні дії в залежності від даних значень. Нижче представлений синтаксис запису конструкції switch():

switch(вираз){
case(умова):
//блок виразів
…
default:
//блок виразів
}

Результат виразу порівнюється з умовами в круглих дужках після case. Блок виразів виконується, якщо результат відповідає умові, в іншому випадку – перевіряється наступна умова. Якщо умови закінчилися і жодна з них не підійшла, виконується частина коду default. У команді switch() у блока default таке ж призначення, як і в else в умовній конструкції if. Обидві конструкції дуже схожі. Приклад:

<?php
switch($b){
case(4):
echo ‘$b=4’;
break;
case(5):
echo ‘$b=5’;
break;
default:
echo ‘$b!=4’;
}
?>

Аналогічний код:

<?php
if($b==4){
echo ‘$b=4’;
}
elseif($b==5){
echo ‘$b=5’;
}
else{
echo ‘$b!=4’;
}
?>

Для запобігання подальшої перевірки умов і виходу зі switch() застосовують команду break.

Використовуючи конструкцію switch() можна зробити невеликий сайт в одному РНР-файлі, приклад можна подивитися нижче:

<?php
//Спочатку перевіряємо, чи відправлялася форма
if(isset($_GET[“straniza”])){
$straniza=addslashes($_GET[“straniza”]);
}
else{
$straniza=“”;
}
switch($straniza){
//Якщо користувач сайту вибрав розділ «Послуги»
case(“services”):
echo“<h1>Послуги</h1>”.
“<form action=‘index.php’ method=‘GET’>”.
“<select name=‘straniza’>”.
“<option value=‘about’>Про компанію</option>”.
“<option value=‘services’>Послуги</option>”.
“<option value=‘’>Головна</option>”.
“</select><input type=submit value=‘GO!’></form>”;
break;
//Якщо користувач сайту вибрав розділ "Про компанію"
case(“about”):
echo“<h1>Про компанію</h1>”.
“<form action=‘index.php’ method=‘GET’>”.
“<select name=‘straniza’>”.
“<option value=‘about’>Про компанію</option>”.
“<option value=‘services’>Послуги</option>”.
“<option value=‘’>Головна</option>”.
“</select><input type=submit value=‘GO!’></form>”;
break;
//За замовчуванням виводимо головну сторінку
default:
echo“<h1>Головна сторінка</h1>”.
“<form action=‘index.php’ method=‘GET’>”.
“<select name=‘straniza’>”.
“<option value=‘about’>Про компанію</option>”.
“<option value=‘services’>Послуги</option>”.
“<option value=‘’>Головна</option>”.
“</select><input type=submit value=‘GO!’></form>”;
}
?>

У прикладі ми писали весь html-код прямо всередині скрипта, що зазвичай не роблять в реальних РНР-додатках. Замість цього використовують команду include, яку ми розглянемо пізніше, або користуються шаблонами, які ми також будемо вивчати в наступних уроках.