Курс "Язык программирования PHP" - страница 15
>
>$names = array("Иван","Петр","Семен");
>if ($names[0]=="Иван") {
> echo "Привет, Ваня!";
> $num = 1;
> $account = 2000;
>}
>if ($num) echo "Иван первый в списке!";
>$bax = 30;
>if ($account > 100*$bax+3)
> echo "Эта строчка не появится
> на экране, так как условие не выполнено";
>?>
Оператор else
Мы рассмотрели только одну, основную часть оператора if. Существует несколько расширений этого оператора. Оператор else расширяет if на случай, если проверяемое в if выражение является неверным, и позволяет выполнить какие-либо действия при таких условиях.
Структуру оператора if, расширенного с помощью оператора else, можно представить следующим образом:
>if (выражение) блок_выполнения
>else блок_выполнения1
Эту конструкцию if...else можно интерпретировать примерно так: если выполнено условие (т.е. выражение=true), то выполняем действия из блока_выполнения, иначе – действия из блока_выполнения1. Использовать оператор else не обязательно.
Посмотрим, как можно изменить предыдущий пример, учитывая необходимость совершения действий и в случае невыполнения условия.
>
>$names = array("Иван","Петр","Семен");
>if ($names[0]=="Иван") {
> echo "Привет, Ваня!";
> $num = 1;
> $account = 2000;
>} else {
> echo "Привет, $names[0].
> А мы ждали Ваню :(";
>}
>if ($num) echo "Иван первый в списке!";
>else echo "Иван НЕ первый в списке?!";
>$bax = 30;
>if ($account > 100*$bax+3)
> echo "Эта строка не появится на экране,
> так как условие не выполнено";
> else echo "Зато появится эта строка!";
>?>
Оператор elseif
Еще один способ расширения условного оператора if – использование оператора elseif. elseif – это комбинация else и if. Как и else, он расширяет if для выполнения различных действий в том случае, если условие, проверяемое в if, неверно. Но в отличие от else, альтернативные действия будут выполнены, только если elseif-условие является верным. Структуру оператора if, расширенного с помощью операторов else и elseif, можно представить следующим образом:
>if (выражение) блок_выполнения
>elseif(выражение1) блок_выполнения1
>...
>else блок_выполненияN
Операторов elseif может быть сразу несколько в одном if-блоке. Elseif-утверждение будет выполнено, только если предшествующее if-условие является False, все предшествующие elseif-условия являются False, а данное elseif-условие – True.
>
>$names = array("Иван","Петр","Семен");
>if ($names[0]=="Иван") {
> // если первое имя в массиве Иван
> echo "Привет, Ваня!";
>}elseif ($names[0] == "Петр"){
> // если первое имя
> // не Иван, а Петр
> echo "Привет, Петя!";
>}elseif ($names[0] == "Семен"){
> // если первое имя не
> // Иван, не Петр, а Семен
> echo "Привет, Сеня!";
>}else {
> // если первое имя не Иван,
> // не Петр и не Семен
> echo "Привет, $names[0]. А ты кто такой?";
>}
>?>
Альтернативный синтаксис
PHP предлагает альтернативный синтаксис для некоторых своих управляющих структур, а именно для if, while, for, foreach и switch. В каждом случае открывающую скобку нужно заменить на двоеточие (:), а закрывающую – на endif;, endwhile; и т.д. соответственно.
Например, синтаксис оператора if можно записать таким образом:
>if(выражение): блок_выполнения endif;
Смысл остается тем же: если условие, записанное в круглых скобках оператора if, оказалось истиной, будет выполняться весь код, от двоеточия «:» до команды endif;. Использование такого синтаксиса полезно при встраивании php в html-код.
>
>$names = array("Иван","Петр","Семен");
>if ($names[0]=="Иван"):
>?>
>Привет, Ваня!
>
Если используются конструкции else и elseif, то также можно задействовать альтернативный синтаксис:
>
>if ($a == 5):
> print "a равно 5";
> print "...";
>elseif ($a == 6):
> print "a равно 6";
> print "!!!";
>else:
> print "a не равно ни 5, ни 6";
>endif;
>?>
Оператор switch
Еще одна конструкция, позволяющая проверять условие и выполнять в зависимости от этого различные действия, – это switch. На русский язык название данного оператора можно перевести как «переключатель». И смысл у него именно такой. В зависимости от того, какое значение имеет переменная, он переключается между различными блоками действия. switch очень похож на оператор if...elseif...else или набор операторов if. Структуру switch можно записать следующим образом: