Подробнее о конструкции if

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

Конструкция if может быть вложенной:

<?php
$number = 10;

if($number > 0)
    if($number < 20)
        echo "Число больше нуля, но меньше двадцати!";
?>

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

<?php
$number = 10;

if(($number > 0) and ($number < 20))
    echo " Число больше нуля, но меньше двадцати!";
?>

Какой способ записи оператора цикла PHP использовать, зависит от ситуации и от ваших личных предпочтений. В предыдущей статье мы рассмотрели правила использования конструкции else. В PHP есть еще одна специальная конструкция – else if.

Она содержит в себе конструкции if и else, и может использоваться следующим образом:

<?php
$number = 10;

if($number > 20)
    echo "Число больше двадцати!";
elseif($number > 10)
    echo "Число больше десяти!";
else
    echo "Кажется, это число слишком мало..."
?>

Данная конструкция оператора цикла PHP не реализует ничего нового, кроме другого синтаксиса. Точно также можно использовать конструкцию else, а следом еще одну конструкцию if.

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

<?php
$number = 10;
if($number == 10):
    echo "Число – 10!";
else:
    echo "Число – не  10… ";
    echo "Но почему?";
endif;
?>

Если такой вариант вам нравится больше – спокойно используйте его. Нет никакой принципиальной разницы.

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

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

<?php
$numberOfItems = 2;
$output = "В вашей корзине ";
if($numberOfItems > 0)
    $output .= "есть товары";
else
    $output .= "нет товаров";
$output .= "!";
echo $output;
?>

Используя тернарный оператор PHP, мы можем сократить эту запись:

<?php
$numberOfItems = 0;
$output = "В вашей корзине " . (($numberOfItems > 0) ? "есть товары" : "нет товаров") . "!";
echo $output;
?>

Такая запись существенно сокращает количество строк кода. Тернарный оператор PHP – сокращенная версия конструкций if и else, записанная в одну строку. Условие, заданное после двух скобок, это и есть аналог if. После ставится вопросительный знак, за которым прописывается следующее условие: удовлетворяет ли конструкции условие TRUE.

Затем ставится двоеточие, за которым прописывается следующее условие: удовлетворяет ли конструкции условие FALSE. Так как все эти условия пишутся в одной строке с оператором присваивания, мы ставим две скобки, чтобы PHP определил, что строчка содержит условие.

Это всего лишь альтернативный вариант записи, используйте его на свое усмотрение.