Поиск

Использование конструкции if-elseif

Условная конструкция ifelseif (или ifelseifelse) совершенно аналогич на оператору if (или ifelse). Работает она точно так же, как i f , добавляя проверку еще одного условного выражения и еще одного блока инструкций, и может быть расширена:


elseif (conditional) {
statement(s)2;

Другой пример:

if (conditional) {
statement(s) ;
} elseif (conditional) {
statement(s)2;
} else {
statement(s)3;

Мы создадим новую страницу hello.php, похожую на приведенную в главе 3. С помощью условной конструкции ifelseif и функции date ( ) будет печатать ся усложненное приветствие пользователю.

Использование конструкции elseif

  1. Создайте новый PHPдокумент в текстовом редакторе.
  2. Напишите HTMLзаголовок и откройте PHPраздел страницы.
  3. <HTMLxHEADxTITLE>Ifelseif Conditionals</TITLExBODYx?php
  4. Создайте главную условную конструкцию if.
  5. if ($Username) {

    Приветствие будет напечатано, только если известно имя пользователя.

  6. print ("Good " ) ;
  7. С помощью этого кода первая часть приветствия печатается отдельно от трех последующих частей. Таким образом, если позже потребуется сменить конкретные слова, это можно сделать в одном месте.

  8. if (date("А") == "AM")
  9. Функция date() используется для определения любой конкретной инфор мации о дате (дне недели, месяце и т.п.) исходя из полученного параметра. Здесь date ( " А " ) возвращает значение "AM" (до полудня) или "РМ" (после полу дня). Функция date ( ) более подробно описана в главе 13.

  10. print ("morning, ");
    } elseif ( ( datef'H") >= 12 ) and ( date("H") < 18 ) ) {
  11. Функция date ( " H " ) возвращает время суток в формате АМ/РМ. Поэтому между полуднем и 18:00 будет использовано приветствие «Добрый день».

  12. print ("afternoon, " ) ;
    } else { .
    print ("evening, " ) ;
  13. Если сейчас не утро и не день, значит, вечер или ночь. По умолчанию ис пользуется инструкция после else, если ни одно другое условие не было удов летворено.

  14. } // Закрыть if даты,
    print ("$Username");
    print ( " ! n " ) ;
    } else { ' •
    print ("Please log i n . n " ) ;
  15. Если неизвестно имя пользователя, вы просите его зарегистрироваться пе ред тем, как продолжать работу.

  16. } // Закрыть if имени пользователя.
  17. Комментарии помогают ориентироваться в сложных и вложенных услов ных конструкциях, помогая закрывать их соответствующим образом.

  18. Сохраните сценарий как hello.php (листинг 6.6), загрузите его на сервер и протестируйте в браузере (рис.).

Листинг 6.6 т Мы вложили условие ifelseifelse в ifelse. Это вполне приемлемо, главное, использовать правильный синтаксис (отступ последу ющих строк помогает не ошибиться).

1 <HTML>
2 <HEAD>
3 <TITLE>Ifelseif C'onditionals</TITLE>
4 <BODY>
5 <?php
6 if ($Username) {
7 print ("Good ");
8 if (date("A") == "AM") {
9 print ("morning, ");
10 } elseif (.( date("H") >= 12) and ( date("H") < 18 ) ) {
11 print ("afternoon, ");
12 } else {
13 print ("evening, ");
14 } // Закрыть if даты.
15 print ("$Username");
16 print ("!\n");
17 } else {
18 print ("Please log in.\n"J;
19 } // Закрыть if имени пользователя
20 ?>
21 </BODY>
22 </HTML>
Оператор else всегда необходимо использовать в последней части условной кон струкции, так как условие else исполняется только в том случае, если ни одно из предыдущих не было удовлетворено.
Как часть условной конструкции if, условия elseif можно использовать любое количество раз.
В РНР можно писать elseif и два слова, если вам так больше нравится: if (condition) { statement(s); } else if (condition2) { statement(s)2; Функция date () очень полезна, но она отражает время на сервере, а не там, где находится пользователь. К тому же, если время на сервере установлено неверно, функция date () выдаст неправильные дату и время.