Условная конструкция 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
- Создайте новый PHPдокумент в текстовом редакторе.
- Напишите HTMLзаголовок и откройте PHPраздел страницы.
- Создайте главную условную конструкцию if.
print ("Good " ) ;if (date("А") == "AM")
print ("morning, ");
} elseif ( ( datef'H") >= 12 ) and ( date("H") < 18 ) ) {print ("afternoon, " ) ;
} else { .
print ("evening, " ) ;} // Закрыть if даты,
print ("$Username");
print ( " ! n " ) ;
} else { ' •
print ("Please log i n . n " ) ;} // Закрыть if имени пользователя.
- Сохраните сценарий как hello.php (листинг 6.6), загрузите его на сервер
и протестируйте в браузере (рис.).
<HTMLxHEADxTITLE>Ifelseif Conditionals</TITLExBODYx?php
if ($Username) {
Приветствие будет напечатано, только если известно имя пользователя.
С помощью этого кода первая часть приветствия печатается отдельно от
трех последующих частей. Таким образом, если позже потребуется сменить
конкретные слова, это можно сделать в одном месте.
Функция date() используется для определения любой конкретной инфор
мации о дате (дне недели, месяце и т.п.) исходя из полученного параметра.
Здесь date ( ” А ” ) возвращает значение “AM” (до полудня) или “РМ” (после полу
дня). Функция date ( ) более подробно описана в главе 13.
Функция date ( ” H ” ) возвращает время суток в формате АМ/РМ. Поэтому
между полуднем и 18:00 будет использовано приветствие «Добрый день».
Если сейчас не утро и не день, значит, вечер или ночь. По умолчанию ис
пользуется инструкция после else, если ни одно другое условие не было удов
летворено.
Если неизвестно имя пользователя, вы просите его зарегистрироваться пе
ред тем, как продолжать работу.
Комментарии помогают ориентироваться в сложных и вложенных услов
ных конструкциях, помогая закрывать их соответствующим образом.
Листинг 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 () выдаст неправильные дату и время.