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

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

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

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
ьного?) 
нако- 
нец настала пора рассказать, что думают по этому поводу разработчики PHP. А они 

предлагают простое решение: инструкции include_once и require_once. 
Инструкция require_once работает точно так же, как и require, но за одним важ- 
ным исключением. Если она видит, что затребованный файл уже был ранее включен, 
то она ничего не делает. Разумеется, такой метод работы требует от PHP хранения 

полных имен всех подсоединенных файлов где-то в недрах интерпретатора. Так он, 
собственно говоря, и поступает. 
Инструкция include_once работает совершенно аналогично, но включает файл во 
время исполнения программы, а не во время трансляции. 
Как я уже говорил, в PHP существует внутренняя таблица, которая хранит пол- 
ные имена всех включенных файлов. Проверка этой таблицы осуществляется 
инструкциями include_once и require_once. Однако добавление имени 
включенного файла производят также и функции require и include. Поэто- 
му, если какой-то файл был востребован, например, по команде require, а 
затем делается попытка подключить его же, но с использованием 
require_once, то последняя инструкция просто проигнорируется. 
Везде, где только можно, применяйте инструкции с суффиксом once. Постарайтесь 
вообще отказаться от require и include. Это во многом упростит разбиение боль- 
шой и сложной программы на относительно независимые модули. 

Глава 10 
Ассоциативные 
массивы 
Возможно, вы уже догадались, что ассоциативные массивы — один из самых мощ- 
ных инструментов в PHP. Массивы — нечто, что довольно часто реализовывается в 
интерпретаторах типа PHP (в Perl ассоциативные массивы устроены даже немного 
хуже, чем в PHP). Давайте рассмотрим чуть подробнее, как с ними работать. 
Массивы — это своеобразные контейнеры-переменные для хранения сразу несколь- 
ких величин, к которым можно затем быстро и удобно обратиться. Конечно, никто 
не 
запрещает вам вообще их не использовать, а, например, давать своеобразные имена 

переменным, такие как $a1, $a2 и т. д., но представьте, что получится в этом 
случае, 
если вам нужно держать в памяти, скажем, тысячу таких переменных. Кроме того, 
такой способ организации массивов имеет и еще один недостаток — очень трудно 
перебрать все его значения в цикле, хотя это и возможно: 
for($i=0; ; $i++) { 
$v="a$i"; 
if(!isset($$v)) break; 
..делаем что-нибудь с $$v 
} 
Никогда так не делайте! Этот пример приведен здесь лишь для иллюстрации. 
Если вдруг при написании какого-нибудь сценария вам все-таки мучительно 
захочется применить этот "трюк", выключите компьютер, подумайте минут 15, 
а затем снова включите его. 
Здесь мы используем возможность PHP по работе с ссылочными переменными, кото- 
рую я категорически не рекомендую где-либо применять. Все это представлено 
здесь 
для того, чтобы проиллюстрировать, насколько неудобно бывает работать без 
масси- 
вов. 

Часть III. Основы языка PHP 168 
Давайте теперь начнем с самого начала. Пусть у нас в программе нужно описать 
спи- 
сок из нескольких человеческих имен. Можно сделать это так (листинг 10.1): 
Листинг 10.1. Инициализация массива 
$NamesList[0]="Dmitry"; 
$NamesList[1]="Helen"; 
$NamesList[2]="Sergey"; 
. . . 
Таким образом, мы по одному добавляем в массив $NamesList элементы, например, 
пронумерованные от 0. PHP узнает, что мы хотим создать массив, по квадратным 
скобкам (нужно заметить, что для этого переменная $NamesList в начале не должна 

еще быть инициализирована). Я буду в дальнейшем называть массивы, ключи (или, 
как их часто называют, индексы — то, что стоит в квадратных скобках) которых 
ну- 
меруются с нуля и идут без пропусков (а это далеко не всегда так, как мы вскоре 
уви- 
дим), списками. 
Некоторые стандартные функции PHP, обрабатывающие массивы, требуют переда- 
вать в их параметрах именно списки, хотя чаще всего можно это ограничение 
обойти, 
передав им любой другой массив. В таком случае они все равно рассматривают мас- 

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