Подробнее о конструкции 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 определил, что строчка содержит условие.
Это всего лишь альтернативный вариант записи, используйте его на свое усмотрение.