Оператор IF ELSE в PHP

Александр Кичатов

Оператор IF

Оператор IF позволяет выполнить кусок кода только при выполнении каких-либо условий.

Например, мы можем уведомить пользователя, что дорогие товары доставляются бесплатно:

<?php
    $price = 1000;

    // Этот код выполнится только если $price > 500
    if($price > 500)
        echo 'Бесплатная доставка!<br>';

    // А этот код выполнится в любом случае
    echo 'Спасибо за заказ!';
?>

В примере выше IF выполняет следующую за ним команду, если выражение в круглых скобках принимает значение true.

Для выполнения нескольких команд нужно поместить их в фигурные скобки:

<?php
    $price = 120;

    // Этот код выполнится только при $price > 100
    if($price > 100)
    {
        $price -= 10;
        echo 'Ваша скидка 10р';
    }

    // А этот код выполнится в любом случае
    echo 'Спасибо за заказ!';
?>

Конструкция IF ELSE

Условие может быть выполнено или не выполнено. Иногда возникает необходимость выполнить разный код для этих ситуаций. Для этого в PHP есть конструкция else:

<?php
    // Для одной команды
    if(100 > 50)
        echo 'Условие верно.<br>';
    else
        echo 'Условие неверно.<br>';

    // Для нескольких команд
    if(200 > 100)
    {
        echo 'Условие ';
        echo 'верно.';
    }
    else
    {
        echo 'Условие ';
        echo 'неверно.';
    }
?>

Существуют разные стандарты оформления PHP-кода. Если показанный выше кажется вам слишком громоздким, можете писать более компактно:

<?php
    if(200 > 100) {
        echo 'Условие ';
        echo 'верно.';
    } else {
        echo 'Условие ';
        echo 'неверно.';
    }

Несколько условий с ELSEIF

С помощью конструкции elseif мы можем добавлять неограниченное количество условий. Выполнено будет только первое из подходящих условий, остальные будут проигнорированы.

Разработаем систему, которая сама рассчитывает наценку на товар в зависимости от его цены:

<?php
    $price = 150;

    if($price < 50)
        $price *= 1.3; // Умножаем цену на 30%
    elseif($price < 100)
        $price *= 1.2; // Умножаем цену на 20%
    elseif($price < 200)
        $price *= 1.1; // Умножаем цену на 10%
    else
        $price *= 1.05; // Умножаем цену на 5%

    echo 'Стоимость товара: ', $price; // Стоимость товара: 165
?>

В примере выше выполнилось только третье условие. Первые два не соответствовали правилам, а последнее пропущено, поскольку уже выполнилось предыдущее.

Альтернативный синтаксис IF ELSE ENDIF

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

<?php if($price > 100): ?>
    <div class="div1"></div>
    <div class="div2"></div>
<?php elseif($price < 50): ?>
    <div class="div3"></div>
    <div class="div4"></div>
<?php else: ?>
    <div class="div5"></div>
    <div class="div6"></div>
<?php endif; ?>

Используется такой синтаксис чаще всего в html-шаблонах, чтобы избавиться от фигурных скобок. Для сравнения, тот же кусок кода в обычном синтаксисе:

<?php if($price > 100) { ?>
    <div class="div1"></div>
    <div class="div2"></div>
<?php } elseif($price < 50) { ?>
    <div class="div3"></div>
    <div class="div4"></div>
<?php } else { ?>
    <div class="div5"></div>
    <div class="div6"></div>
<?php } ?>

Выглядит уже менее приятно, а при наличии других операторов с фигурными скобками будет совсем беда. Поэтому при формировании HTML-страниц не забывайте про альтернативный синтаксис.

Комментарии