Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
нтересует значение ключа очередного элемента. Выглядит она так: 
foreach(массив as $value) 
команды; 
В этом случае доступно лишь значение очередного элемента массива, но не его 
ключ. 
Это может быть полезно, например, для работы с массивами-списками. 
Цикл foreach оперирует не исходным массивом, а его копией. Это означает, 
что любые изменения, которые вносятся в массив, не могут быть "видны" из 
тела цикла. Что позволяет, например, в качестве массива использовать не 
только переменную, но и результат работы какой-нибудь функции, возвра- 
щающей массив (в этом случае функция будет вызвана всего один раз — до 
начала цикла, а затем работа будет производиться с копией возвращенного 
значения). 
В следующей главе мы рассмотрим ассоциативные массивы и все, что к ним относит- 

ся, гораздо более подробно. 

Глава 9. Конструкции языка 161 
Конструкция 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, но и все нижележащие. 
Вот альтернативный синтаксис для конструкции switch-case: 
switch(выражение): 
case значение1: команды1; [break;] 
. . . 
case значениеN: командыN; [break;] 
[default: команды_по_умолчанию; [break]] 
endswitch; 
Инструкция require 
Эта инструкция позволяет нам разбить текст программы на несколько файлов. Ее 
формат такой: 
require имя_файла; 
При запуске (именно при запуске, а не при исполнении!) программы интерпретатор 
просто заменит инструкцию на содержимое файла имя_файла (этот файл может так- 
же содержать сценарий на PHP, обрамленный, как обычно, тэгами ). Причем 
сделает он это только один раз (в отличие от include, который рассматривается 

Часть III. Основы языка PHP 162 
ниже): а именно, непосредственно перед запуском программы. Это бывает довольно 
удобно для включения в вывод сценария всяких "шапок" с HTML-кодом. Например 
(листинги 9.4, 9.5 и 9.6): 
Листинг 9.4. Файл header.htm 
 
Title! 
 
Листинг 9.5. Файл footer.htm 
©My company, 1999. 
 
Листинг 9.6. Файл script.php 
 
Безусловно, это лучше, чем включать весь HTML-код в сам сценарий вместе с инст- 

рукциями программы. Вам скажет спасибо тот, кто будет пользоваться вашей про- 
граммой и захочет изменить ее внешний вид. Однако, несмотря на кажущееся удоб- 
ство, это все же плохая практика. Действительно, наш сценарий разрастается аж 
до 
трех файлов! А как было сказано выше, чем меньше файлов использует программа, 
тем легче с ней будет работать вашему дизайн
 
<<-[Весь Текст]
Страница: из 287
 <<-