Как и в других языках программирования, в PHP существуют операторы выбора. Всего их три вида:
- условный оператор if...else;
- переключатель switch;
- условная операция (?);
Стоит отметить, что в PHP отсутствует безусловный переход по метке goto, но несмотря на это, ключевое слово под goto зарезервировано.
В этом уроке мы рассмотрим условный оператор if...else и условные операции, а следующий урок будет посвящен переключателю switch.
Синтаксис if...else такой же, как и в языке С:
<?php if (uslovie) {//в случае если uslovie истинно, то мы попадаем сюда operator1; //в случае одного оператора, operator2; //фигурные скобки необязательны ... } else // не является обязательным {//в случае если uslovie ложно, то мы попадаем сюда operator3; //в случае одного оператора, operator4; //фигурные скобки необязательны ... } ?>
Примечания:
- else - не обязательная часть, но чаще всего её применяют, т.к. этого требует логика.
- Как было отмечено в комментариях к коду, фигурные скобочки {} не обязательны, если у нас только один оператор. Поскольку условие может быть либо истинным (1), либо ложным (0), то будет выполнены либо operator1, operator2 и т.д., либо operator3, operator4 и т.д.
Приведем конкретный пример на PHP:
<?php //Задание значений переменных $num1 = 10; $num2 = 7; if ($num1 > $num2) {//условие истинно, значит попадаем сюда echo "Условие истинно, поскольку 10 > 7<br/>"; $num1+=$num2; // прибавим к $num1 переменную $num2; echo "\$num1 = ". $num1; // результатом будет 17 } else echo "Поскольку условие положительное, то сюда мы не попадаем"; // В else только один оператор, поэтому фигурные скобки отсутствуют ?>
Приведем пример, в котором конструкция else опущена, а условие состоит из двух условий:
<?php $num1 = 10; $num2 = 7; if ($num1 == 10 && $num2==7) echo "Условия истинны"; //Другой пример: if ($num1 != 0 && $num2 > 6) echo "Условия истинны"; //Другой пример: if ($num1 == 10 || $num2 >= 100) echo "Условия истинны"; //Во всех случаях условия истинны ?>
Вложенные условия if
Как и в языке С, в PHP допускается использование вложенных в друг друга условий:
<?php if (uslovie1) if (uslovie2) { //если uslovie1 и uslovie2 истинны, то попадаем сюда } else { //если uslovie1 истинно, а uslovie2 ложно, то попадаем сюда } else { //если uslovie1 и uslovie2 ложно, то попадаем сюда } ?>
Вложений if в if можно написать сколь угодно много, но такие конструкции очень сложны, поэтому при отладке программы разобраться в них будет довольно трудно. Приведем пример с вложенными операторами if:
<?php $flag1=true; $flag2=false; if ($flag1) if ($flag2) { echo "\$flag1 и \$flag2 истины"; } else { echo "\$flag1 - истина, а \$flag2 - ложь"; } else { echo "\$flag1 и \$flag2 - ложны"; } // в результате этого скрипта будет выведено сообщение: // $flag1 - истина, а $flag2 - ложь ?>
Вложенные условия с помощью if...elseif...else
В PHP есть возможность использовать вложенные условные операторы с помощью схемы: if...elseif...else. Это гораздо удобней, чем делать первоначально множество условий, а потом к ним множество else. Синтаксис конструкции if...elseif...else следующий:
<?php if (uslovie1) { ... операторы; ... } elseif (uslovie2) { ... операторы; ... } else { ... операторы; ... } ?>
В такой конструкции else может быть написан только один раз, а вот elseif сколько угодно. Также считается, что выше описанная конструкция уступает переключателю switch.
Использование оператора endif
Практически в любом движке созданном на PHP используется оператор endif. Конструкция данного оператора приведена ниже:
<?php if (uslovie1): ?> ... html-теги и контент; ... <?php elseif (uslovie2): ?> ... html-теги и контент; ... <?php endif; ?>
Стоит обратить внимание на удобство этой конструкции, чем если бы мы выводили весь контент через echo. Не забывайте после условия ставить двоеточие!
Использование условных операций (?)
Применение условных операций не является распространенным подходом не только в языке PHP, но и в других подобных языках, однако о них не стоит забывать. Синтаксис условной операции следующий:
<?php условие ? оператор_1 : оператор_2; ?>
Сначала идет какое-то условие. Если оно истинно, то выполняется оператор_1, иначе оператор_2. Я думаю, что конструкция не является очень понятной, поэтому стоит привести пару разъясняющих примеров на PHP. Например, с помощью условной операции можно легко реализовать модуль числа:
<?php $x = -5; $x = ($x<0) ? -$x : $x; //модуль числа echo $x; ?>
Условные операции бывает выгодно использовать в каких-то коротких выражениях, где нужно изменить значение только одной переменной в зависимости от какого условия.
Следующий урок: условный переключатель switch
Читайте также:
• Операторы цикла (while, do..while, for)
• Как сделать сайт на PHP
• Как сделать меню для сайта на PHP
• Что такое HTTP. Коды ответов HTTP сервера
• Как добавить PHP код в html файл
• Как добавить кнопку "Наверх" на сайте
• Как сделать форму обратной связи на php с каптчей
• Коды спецсимволов в HTML
• Коды и названия html цветов для сайта