Php конструкция if: операторы if, else, switch, тернарный оператор

Условия 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( . .. ). Продемонстрируем работу этой функции наглядно:

<?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.

Была ли эта статья полезна? Есть вопрос?

Закажите недорогой хостинг Заказать

всего от 290 руб

Условие if-else в PHP

Условный оператор if-else часто называют оператором ветвления, т.к. он обеспечивает выполнение определенной команды только при условии истинности некоторого логического выражения. Его формат таков:

if (логическое выражение) итструкция1; else итструкция2;

if (логическое выражение)

    итструкция1;

else

    итструкция2;

Если логическое выражение истинно,то выполняется инструкция1, а иначе — инструкция2. Конструкция else может опускаться.

Это своего рода точка принятия решения в программе. Представим что интерпретатор PHP это человек собирающийся перейти дорогу и напишем для него инструкцию:

$light = «зеленый»; if ($light == «зеленый»){ echo «переходим дорогу»; } else{ echo»стоим на месте»; }

1

2

3

4

5

6

7

$light = «зеленый»;

if ($light == «зеленый»){

  echo «переходим дорогу»;

}

else{

echo»стоим на месте»;    

}

Рассмотрим эту конструкцию подробней.

Мы пишем слово if и в круглых скобках указываем условие, после этого открываем фигурные скобки и в них описываем действие которое будет выполняться при этом условии. Дальше пишем слово else(что означает «иначе») и указываем в фигурных скобках как следует поступить программе, если первое условие не выполняется.

Оператор if-else вычисляет значение условного выражения и выполняет тот или иной фрагмент программного кода. Но что, если требуется проверить сразу несколько условий? Тут на помощь к нам придет конструкция elseif. Она позволяет проверять дополнительные условия, пока не будет найдено истинное или достигнут блок else.

С использованием инструкции elseif оператор if-else будет выглядить так:

if (условие) { Блок, выполняемый если условие истинно } elseif (условие) { Блок, выполняемый, если условие истинно } else { Блок, выполняемый, если все условия ложны }

1

2

3

4

5

6

7

8

if (условие) {

   Блок, выполняемый если условие истинно

}

elseif (условие) {

    Блок, выполняемый, если условие истинно

}

else {

   Блок, выполняемый, если все условия ложны }

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

Один условный оператор можно вложить в другой:

<?php $a=9; $b=33; if ($a > 0 && $b > 0){ if($a<$b){ echo «a меньше чем b»; } else{ echo «a больше чем b»; } } ?>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

    <?php

    $a=9;

    $b=33;

    

    if ($a > 0 && $b > 0){

        if($a<$b){

            echo «a меньше чем b»;

}

            else{                

                echo «a больше чем b»;

}

        

}

    

    ?>

Т.е. выполняется внешнее условие и если все ок(в нашем случае если обе переменные больше нуля), то начинает выполнятся внутреннее условие. Если же внешнее условие не выполнится, то ничего не произойдет — инструкция остановится.

Конструкция if-else имеет еще один альтернативный синтаксис:

if (логическое выражение): команды; elseif (другое логическое выражение): другие команды; else: иначе команды; endif

1

2

3

4

5

6

7

if (логическое выражение):

команды;

elseif (другое логическое выражение):

другие команды;

else:

иначе команды;

endif

Обратите внимание на расположение двоеточия. Его пропуск считаеться синтаксической ошибкой. Блоки else и elseif можно пропустить.

Оператор PHP if | CS Rhymes

Опубликовано: 6 мая 2021 г. Автор: CS Rhymes

Основы PHP

Этот пост является частью серии постов об основах PHP.

  • Оператор PHP if

  • Оператор переключения PHP
  • PHP-массив
  • PHP для цикла
  • Цикл foreach в PHP

Это первая из серии статей, которые я напишу, которые возвращаются к основам и знакомят с основами PHP. В этой статье я начну с PHP-оператора if.

Оператор if довольно прост, верно. Если это, то сделай то, иначе сделай что-нибудь другое. Сортировка? Тут есть еще кое-что…

Назначение оператора if состоит в том, чтобы иметь условие или тест, и если он проходит, то запускать код в этом разделе. Если он не проходит, этот код не запускается. Вы также можете указать else, который будет выполняться, если условие или тест не пройдены. Это очень простой в принципе, но очень мощный инструмент.

На самом деле есть еще кое-что, что нужно учитывать в скромном операторе if в PHP. Начнем с синтаксиса.

Синтаксис

Есть несколько разных способов написать оператор if на PHP и получить один и тот же результат. Ниже представлено несколько различных способов, которыми вы можете увидеть операторы if в PHP.

С фигурными скобками

В этом примере скобки используются для разделения разделов оператора if. Если у вас есть IDE или хороший текстовый редактор, вы обычно можете щелкнуть открывающую скобку, и он выделит открывающую и закрывающую скобки, чтобы вы могли видеть, где начинается и заканчивается каждый раздел.

 $myVar = истина;
если ($myVar === истина) {
    эхо "Это правда";
} еще {
    echo "Это неверно";
}
 

С двоеточиями

Иногда проще не использовать фигурные скобки и использовать вместо них двоеточие. Если вы не используете инструмент для создания шаблонов (например, Blade или Twig) и в вашем файле есть смесь PHP и html, то этот вариант может быть для вас предпочтительным. Я видел, как этот подход довольно часто использовался при работе с WordPress.

 
    

Это правда

Это неверно

Тернарный оператор

Иногда вам может понадобиться более простой, сокращенный подход, когда у вас есть простое условие. В этом случае вы можете использовать тернарный оператор. Первая часть — это условие, за которым следует, что должно произойти, если условие выполняется (после ? ), и, наконец, что произойдет, если условие не выполняется (после 9).0049 : ).

 $myVar = истина;
эхо $myVar ? «Это правда»: «Это ложь»;
 

Также можно удалить раздел «Это правда» тройного оператора, если вы хотите использовать значение в условии, и это условие возвращает значение «истина». Например:

 $myVar = "Это правда";
echo $myVar ?: "Это ложь"; // Это правда
$myVar = ложь;
echo $myVar ?: "Это ложь"; // Это ложь
 

Без скобок и двоеточий

Если вы действительно хотите, вам не нужно писать скобки или двоеточия. Он запустит код в строке сразу после оператора if, если условие будет выполнено. Лично я бы избегал использовать этот подход, так как может быть сложнее читать и обрабатывать то, что происходит.

 $myVar = истина;
если ($myVar === правда)
    эхо "Это правда";
если ($myVar !== правда)
    echo "Это неверно";
 

Else If

Возможно, вы заметили потенциальную проблему в приведенных выше примерах. Мы предположили, что если $myVar неверно, то оно должно быть ложным, повторяя «Это ложно». Но это может быть не так, это может быть null или это может быть строка, целое число и т. д.

Если мы хотим убедиться, что $myVar на самом деле ложно, прежде чем повторять «Это ложно» тогда мы можем использовать else if, чтобы добавить еще одну проверку условия.

 $myVar = истина;
если ($myVar === истина) {
    эхо "Это правда";
} elseif ($myVar === false) {
    echo "Это неверно";
}
 

Вы также можете добавить еще один конец в конец, чтобы отловить случаи, которые не вписываются в условные операторы if или else if.

 $myVar = истина;
если ($myVar === истина) {
    эхо "Это правда";
} elseif ($myVar === false) {
    echo "Это неверно";
} еще {
    echo "Это ни правда, ни ложь";
}
 

При желании вы можете добавить несколько операторов elseif, но вместо этого вы можете использовать альтернативу, например оператор switch.

ElseIf или Else If

При использовании фигурных скобок вы можете использовать elseif или else if , и они оба делают одно и то же. Но если вы используете двоеточие, вы можете использовать только elseif , так как else if вызовет ошибку синтаксического анализа в PHP.

Нулевой оператор объединения

В PHP7 появился нулевой оператор объединения ?? . Хотя это не является оператором if, полезно проверить, является ли первый элемент нулевым. Если оно не равно нулю, то используется условие, иначе будет использоваться второй элемент (после ?? ).

 $myVar = 'Это строка';
эхо $myVar ?? "Это нуль"; // Это строка
$myVar = ноль;
эхо $myVar ?? "Это нуль"; // Это нуль
// Эквивалент этого тернарного оператора
эхо isset($myVar) ? $myVar : "Ноль";
 

Вкратце

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

Включите JavaScript для просмотра комментариев с помощью Disqus.

PHP 101 — Оператор if

PHP 101 — Оператор if | Джордж Орнбо

Последнее обновление

Я получаю довольно много запросов от дизайнеров, которые просят помочь с основами PHP. Итак, я собираюсь написать серию статей об очень простом PHP. Это несложно, так что давайте начнем с робота и оператора if.

Расчетное время чтения: 3 минуты

Содержание

Робот if

Оператор if является неотъемлемой частью языков программирования. Это позволяет вам протестировать что-то, а затем сделать что-то еще. Использование оператора if в PHP легко и несложно в освоении. Представьте, что вы идете по улице в Эдинбурге и видите робота, стоящего на обочине. У робота на груди одна большая красная кнопка. Это классический пример ситуации, когда следует использовать оператор if.

Код

Вот как выглядит оператор if на примере робота if.

 
 

Прежде всего, у нас есть тег php. Это позволяет запускать PHP-код. Затем у нас есть переменная $button. Переменная — это просто то, что может быть более чем одной вещью. Переменные позволяют временно хранить часть информации. Переменные PHP обозначаются знаком доллара, за которым следует имя. В данном случае это кнопка на роботе. Он может быть прессованным, непрессованным или сломанным. Если кнопка нажата, робот будет исполнять песню. Оператор if проверяет, является ли утверждение в скобках истинным. Оператор == проверяет, эквивалентны ли эти два параметра. В данном случае это так, и мы используем оператор echo для записи статуса на страницу. Наконец, у нас есть закрывающий тег PHP.

Тестирование различных условий

В нашем примере мы использовали оператор if, чтобы сделать что-то, если кнопка нажата. Но есть еще два варианта тестирования для разных условий — elseif и else. Используя elseif, мы можем проверить что-то еще, а затем мы можем использовать else, чтобы подобрать что-то, что не соответствует ни одному из наших условий. Допустим, мы хотим проверить, сломана ли кнопка или ничего не произошло. Мы можем сделать это:

 
 

Укороченный синтаксис

Когда вы начинаете, я рекомендую вам использовать приведенный выше синтаксис, так как его легче читать и понимать. Однако, как только вы освоитесь, если вы просто проверяете два условия (правда и ложь были бы хорошим примером), вы можете использовать более короткий способ написания оператора if. Вот стандартный способ узнать, голоден ли человек:

 
 

Это также можно записать так:

 
 

Альтернативный синтаксис труднее читать, но он намного короче.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *