Язык программирования PHP | страница 23



> так как условие не выполнено";

> 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 можно записать следующим образом: