Оглавление

19.2. Оператор ветвления if…else

Проверка выбранного элемента из списка

 

Оператор ветвления мы уже использовали ранее в наших примерах, в частности, чтобы узнать, существует ли переменная. Так как функция isset() при существовании переменной возвращает значение true, то это условие можно проверить, используя оператор ветвления if…else:

if (isset($_GET['name'])) {
   echo 'Hello, ' . $_GET['name'];
}
else {
   echo 'Введите ваше имя<br>';
   echo '<form action="' . $_SERVER['SCRIPT_NAME'] . '">';
   echo '<input type="text" name="name">';
   echo '<input type="submit" value="OK">';
   echo '</form>';
}


Обратите  внимание,  что  логическое  выражение  не  содержит  операторов сравнения:

if (isset($_GET['name'])) {

Такая запись эквивалентна следующей:

if (isset($_GET['name'])==true) {


Проверка  на  равенство  выражения  значению  true  выполняется  по  умолчанию.
Оператор ветвления if…else имеет следующий формат:
if (<Логическое выражение>) {
   <Блок, выполняемый если условие истинно>
}
[elseif (<Логическое выражение>) {
   <Блок, выполняемый, если условие истинно>
}]
[else {
   <Блок, выполняемый, если все условия ложны>
}]

 

Для примера напишем программу, которая проверяет, является ли введенное пользователем  число  четным  или  нет (листинг 32). После  проверки  выводится соответствующее сообщение.

 
 Листинг 32. Проверка числа на четность

<b>Проверка числа на четность</b><br><br>
Введите число<br>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
<input type="text" name="var">
<input type="submit" value="OK">
</form><br>
<?php
if (isset($_GET['var'])) {
   $var = $_GET['var'];
   if (preg_match('/^[0-9]+$/s', $var)) {
      // Преобразуем тип string (строка) в integer (число)
      $var = intval($var);
      if ($var%2 == 0) {
         echo $var . ' - Четное число';
      }
      else {
         echo $var . ' - Нечетное число';
      }
   }
   else echo 'Необходимо ввести число';
}
?>

 

Как  видно  из  примера,  один  условный  оператор  можно  вложить  в  другой. Кроме того, если блок состоит из одного выражения, фигурные скобки можно не указывать:

if ($var%2 == 0) echo $var . ' - Четное число';
else echo $var . ' - Нечетное число';

Более того, блока else может не быть совсем:

if ($var%2 == 0) echo $var . ' - Четное число';

Кроме того, оператор if…else позволяет проверить сразу несколько условий.
Рассмотрим это на примере (листинг 33).

 
Листинг 33. Проверка введенного значения

<b>Какой операционной системой вы пользуетесь?</b><br><br>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
<select name="os">
<option value="0" selected>Не выбрано</option>
<option value="1">Windows 98</option>
<option value="2">Windows ME</option>
<option value="3">Windows XP</option>
<option value="4">Другая</option>
</select>
<input type="submit" value="Выбрал">
</form>
<?php
if (isset($_GET['os'])) {
   $os = $_GET['os'];
   if ($os == '1') echo 'Вы выбрали - Windows 98';
   elseif ($os == '2') echo 'Вы выбрали - Windows ME';
   elseif ($os == '3') echo 'Вы выбрали - Windows XP';
   elseif ($os == '4') echo 'Вы выбрали – Другая';
   elseif ($os == '0') echo 'Вы не выбрали операционную систему';
   else echo 'Мы не смогли определить вашу операционную систему';
}
?>

 

С  помощью  оператора  elseif  мы  можем  определить  выбранное  в  списке значение и вывести соответствующее сообщение.

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити