Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Альтернативный синтаксис

Оператор elseif

Оператор 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 "Зато появится эта строка!";?>

Пример 3.2. Оператор else (html, txt)

Еще один способ расширения условного оператора 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-код.

<?php$names = array("Иван","Петр","Семен"); if ($names[0]=="Иван"):?>Привет, Ваня!<?php endif?>

Пример 3.4. Использование альтернативного синтаксиса (html, txt)

Если используются конструкции else и elseif, то также можно задействовать альтернативный синтаксис:

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

switch (выражение или переменная){case значение1: блок_действий1break;case значение2: блок_действий2break;...default: блок_действий_по_умолчанию}

В отличие от if, здесь значение выражения не приводится к логическому типу, а просто сравнивается со значениями, перечисленными после ключевых слов case (значение1, значение 2 и т.д.). Если значение выражения совпало с каким-то вариантом, то выполняется соответствующий блок_действий – от двоеточия после совпавшего значения до конца switch или до первого оператора break, если таковой найдется. Если значение выражения не совпало ни с одним из вариантов, то выполняются действия по умолчанию (блок_действий_по_умолчанию), находящиеся после ключевого слова default. Выражение в switch вычисляется только один раз, а в операторе elseif – каждый раз, поэтому, если выражение достаточно сложное, то switch работает быстрее.

Пример 3.3 можно переписать с использованием switch следующим образом:

<?$names = array("Иван","Петр","Семен"); switch ($names[0]){case "Иван": echo "Привет, Ваня!";break;case "Петр": echo "Привет, Петя!";break;case "Семен": echo "Привет, Сеня!";break;default: echo "Привет, $names[0]. А как Вас зовут?";}?>

Если в этом примере опустить оператор break, например, в case "Петр":, то, если переменная окажется равной строке "Петр", после вывода на экран сообщения "Привет, Петя!" программа пойдет дальше и выведет также сообщение "Привет, Сеня!" и только потом, встретив break, продолжит свое выполнение за пределами switch.

Для конструкции switch, как и для if, возможен альтернативный синтаксис, где открывающая switch фигурная скобка заменяется двоеточием, а закрывающая – endswitch; соответственно.

<== предыдущая лекция | следующая лекция ==>
Оператор if | Foreach
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 329; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.