if — else в PHP

Условия и ветвления являются неотъемлемой частью любой разработки, в любом языке программирования, php не исключение. Практически любой php-скрипт содержит условия и в зависимости от его выполнения, происходит выполнение того или иного выражения, вызова функций, вывода информации. В данной статье будет рассмотрено несколько примеров применения. Использование if — else схоже с принятием решений у человека. Естественно, принятие решений у человека, немного сложнее, тем не менее на if-else можно построить небольшое подобие. На картинке ниже, я постарался наглядно показать, как это работает.


if-else php

Рассмотрим простой пример, аналогичный изображению выше, уже на php. Когда интерпретатор php доходит до if, происходит проверка на истинность того, что находится в круглых скобках, это может быть проверка существования переменной, проверка ее на пустоту, проверка содержащегося в ней значения с другой переменной или даже несколько условий. И если в результате проверки, условие в скобках, после if окажется верным(true), то выполнится код, находящийся в фигурных скобках после if. Если условие будет не верным(false), то интерпретатор ищет блок else и выполняет код, который находится в фигурных скобках после else, пропуская весь код в фигурных скобках блока if.

Для начала объявим переменную $money и присвоим значение true, это будет означать, что деньги есть. Затем проверим переменную в if и выполним выражение, а также опишем конструкцию else c выполняемым выражением, если $money окажется false. В коде это бы выглядело так:

<?php

$money = true;

if($money){
   echo 'Идем в магазин';
}else{
   echo 'Идем домой';
}

?>

В результате выполнения будет выведено: Идем в магазин, так как проверяемое выражение в if — верно.

Если изменить значение переменной $money на false, то мы получим вывод сообщения: Идем домой. Попробуйте самостоятельно проверить.

Конструкция if — else может быть многоуровневой, где в результате проверки одного условия, происходит проверка дополнительных. Усложним пример, чтобы наглядно это проверить. Добавим переменные $shopOpen, $breadExist, $breadFresh и присвоим им значение, тоже true — это будет означать, что магазин открыт и хлеб есть.

Список последовательных проверок нового пример:

  1. Есть ли деньги?;
  2. Открыт ли магазин?;
  3. Есть ли хлеб?;
  4. Хлеб свежий?;

На каждую из этих проверок будут действия в случае true и false. Код примера, с комментариями:

<?php

$money = true;
$shopOpen = true;
$breadExist = true;
$breadFresh = true;

// Проверяем наличие денег
if($money){

    echo 'Идем в магазин\n';

    // Проверяем открыт ли магазин

    if($shopOpen){

        echo 'Магазин открыт, заходим и проверяем наличие хлеба\n';

        // Проверяем есть ли хлеб

        if($breadExist){

            echo 'Хлеб есть, но нужно проверить свежий ли он\n';

            // Проверяем свежесть хлеба

            if($breadFresh){

                echo 'Хлеб свежий, покупаем\n';

            }else{

                echo 'Хлеб не свежий, идем в другой магазин\n';

            }

        }else{

            echo 'Хлеба нет, идем в другой магазин\n';

        }

    }else{

        echo 'Магазин закрыт. Идем в другой магазин\n';

    }

}else{

    echo 'Идем домой\n';

}

?>

В результате работы этого кода, мы получим следующий вывод:

Идем в магазин
Магазин открыт, заходим и проверяем наличие хлеба
Хлеб есть, но нужно проверить свежий ли он
Хлеб свежий, покупаем

В коде выше, было сделано несколько вложенных if — else. Скопируйте код и попробуйте поменять значения объявленных переменных с true на false, чтобы наглядно посмотреть, как обрабатываются или пропускаются выражения, при разных условиях.

Стоит отметить, чтобы не запутаться во вложенности, следует вложенные конструкции писать последовательно и блоками, а потом заполнять данными для проверки и выражениями. Ниже gif-ка, на которой наглядно показана последовательность построения вложенности.


if - else вложенные

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

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



Рекламный блок, для развития проекта