САМОУЧИТЕЛЬ PHP 4



         

Конструкции языка - часть 10


Цикл foreach оперирует не исходным массивом, а его копией. Это означает, что любые изменения, которые вносятся в массив, не могут быть "видны" из тела цикла. Что позволяет, например, в качестве массива использовать не только переменную, но и результат работы какой-нибудь функции, возвращающей массив (в этом случае функция будет вызвана всего один раз — до начала цикла, а затем работа будет производиться с копией возвращенного значения).

В следующей главе мы рассмотрим ассоциативные массивы и все, что к ним относится, гораздо более подробно.

Конструкция switch-case

Часто вместо нескольких расположенных подряд инструкций if-else целесо­образно воспользоваться специальной конструкцией switch-case:

switch(âûðàæåíèå) {

  case çíà÷åíèå1: êîìàíäû1; [break;]

  case çíà÷åíèå2: êîìàíäû2; [break;]

  . . .

  case çíà÷åíèåN: êîìàíäûN; [break;]

  [default: êîìàíäû_ïî_óìîë÷àíèþ; [break]]

}

Делает она следующее: вычисляет значение выражения (пусть оно равно,

например, V), а затем пытается найти строку, начинающуюся с case V:. Если та­кая строка обнаружена, выполняются команды, расположенные сразу после нее (причем на все последующие операторы case что_то внимание не обраща­ется, как будто их нет, а код после них остается без изменения). Если же найти такую строку не удалось, выполняются команды после default (когда они заданы).

Обратите внимание на операторы break (которые условно заключены в квадратные скобки, чтобы подчеркнуть их необязательность), добавленные после каждой строки команд, кроме последней (для которой можно бы­ло бы тоже указать break, что не имело бы смысла). Если бы не они, то при равенстве V=значение1 сработали бы не только команды1, но и все нижележащие.




Содержание  Назад  Вперед