Условия if, else и switch в PHP

В этой статье будет разобран механизм условий if. В программировании условие if - это одни из основных инструментов. Давайте посмотрим, как это работает:
<?php
   if( /* условие */ ){
      /* код в этих скобках будет выполняться, 
      если "условие" является правдой */
   }else{
      /* код в этих скобках будет выполняться, 
      если "условие" является ложью */
   }
?>
Обратите внимание, что можно записать if( ... ){ ... } без блока else{ ... }. Также можно записать оба блока без фигурных скобок, но тогда выполнится только следующая строчка после if или else. Приведём пример и попробуем написать код с возможными условиями:
<?php
   $a = 4;

   if( $a < 5 ) echo 'Это правда'; // значение $a меньше 5

   if( $a <= 5 ) echo 'Это правда'; // значение $a меньше или равно 5

   if( $a > 3  ) echo 'Это правда'; // значение $a больше 3

   if( $a >= 3  ) echo 'Это правда'; // значение $a больше или равно 3

   if( $a == 4 ) echo 'Это правда'; // значение $a равно 4

   if( $a == 2 * 2 ) echo 'Это правда';// значение $a равно 4 (потому что 2*2=4)

   if( $a != 7 ) echo 'Это правда';// значение $a НЕ равно 7
?>
Во всех перечисленных примерах будет выведена строка "Это правда", потому что условие выполняется.
Не забывайте, что одиночное равно "=" делает операцию присваивания. А двойное "==" сравнивает значения. Условие с одним равно if($a = 1) всегда будет исполняться.
Помимо сравнения по значению есть ещё и сравнение по типу. К примеру:
<?php
   $a = true; // тип данных boolean (имеет два значения true и false)

   if( $a === true ) echo 'Это правда'; // значение $a имеет тип и равно true

   if( $a !== false ) echo 'Это правда'; // значение $a не имеет тип или не равно false
?>
Условие может быть как в одну строку, так и в несколько. Ещё условие может содержать конец и начало PHP кода. Приведём пример:
<?php
   $a = 1;

   if( $a == 1 ){
      ?>
         <div>Условие выполнено</div>
      <?php 
   }else{ 
      ?>
         <div>Условие не выполнено</div>
      <?php 
   }
?>
Если запустить такой код, то на экране появится HTML страница с блоком "<div>Условие выполнено</div>". Подобную запись, когда в условие if вставляют разрыв PHP кода, можно встретить довольно часто в больших проектах.

Помимо if и else есть ещё elseif. Последнее используется для создания множественных условий. Приведём наглядный пример:
<?php
   $a = 2;

   if( $a == 1 ){
      echo $a . ' == 1';
   }elseif($a < 3){ 
      echo $a . ' < 3';
   }elseif($a <= 2){ 
      echo $a . ' <= 2';
   }else{ 
      echo 'Ничего не подходит';
   }
?>
В таком коде условия будут проверять по порядку. Сначала проверится $a == 1 и оно окажется ложью. Будет проверено следующее условие по списку $a < 3 - это условие является истиной, поэтому в результате выполнения этого PHP кода на экран браузера будет выведен текст "2 < 3". Но если бы и это условие не подошло, то было бы проверено следующее $a <= 2. Но если и оно бы не подошло, то была бы выполнено то, что стоит в else{ ... } - на экран бы было выведен текст "Ничего не подходит".

Возможно сделать несколько проверок внутри скобок if( ... ). Для этого используются логические операторы and (и) / or (или). Также возможно ставить скобки внутри условий. Эти скобки работают как скобки в математике. Разберём всё на примере:
<?php
   $a = 2;
   $b = 3;
   $c = 4;

   if( $a == 2 and $b < $c ){
      // код здесь будет выполняться, потому что условие - истина
   }

   if( $a == 2 and ($b < $c and $c < $a ) ){
      // код здесь НЕ будет выполняться, потому что условие - ложь ($c больше $a)
   }

   if( $a == 2 or ($b < $c and $c < $a ) ){
      // код здесь будет выполняться, потому что условие - истина. Несмотря на то, что часть выражения после "or" является ложью
   }
?>

Конструкция switch

Если необходимо выполнить разный код при определённых значениях аргумента, то для большого количества проверок подойдёт switch( ... ). Продемонстрируем работу этой функции наглядно:
<?php
   $a = 2;

   switch ($a) {
      case 1:
         echo 'Переменная $a равна одному';
      break;
      case 2: 
         echo 'Переменная $a равна двум';
      break;
      case 'три': 
         echo 'Переменная $a равна трём';
      break;
      default:
         echo 'Значение не найдено'; 
      break;
   }
?>
В результате выполнения этого кода на экране браузера появится надпись "Переменная $a равна двум". Это происходит потому, что функция switch берёт значение переменной $a и начинает сравнивать со значениями, которые стоят после слова "case". Эти значения могут быть как строки, так и числа. В примере $a = 2, поэтому функция выполнила код, стоящий в пункте "case 2:".

Конструкции switch в реальных проектах сайтов встречаются довольно редко. Обычно хватает if-else, или на крайний случай несколько раз вложенных if-else.
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: