Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

metoda / Ml_ITIn_2013

.pdf
Скачиваний:
29
Добавлен:
16.03.2016
Размер:
6.66 Mб
Скачать

121

122

Рис. 3.71. Листинг обработчика Lab6_3.php.

Обратите внимание, что в листинге программы Lab6_3.php (рис. 3.71) Html код должен помещаться после PHP кода, иначе функция

будет выдавать предупреждение о присутствии информации перед PHP кодом.

Кроме того текст программы Lab6_3.php, в свою очередь содержит обработчик Lab6_4.php (листинг представлен на рис. 3.72) для возможности обработки ошибок при вводе значений в поле связи (рис. 3.73).

123

Рис. 3.72. Листинг обработчика Lab6_4.php.

Пусть пользователь ввел информацию в форму, показанную на рис.

3.69.

Тогда в обработчике Lab6_3.php (через глобальный массив $_POST) будут доступны переменные:

124

Так как значения переменных $FirstName и $LastName непусты и равны соответственно $FirstName =‘Иван‘, $LastName= ‗Иванов‘, то будет построена форма (рис. 3.73) с помощью операторов ниже приведенных операторов (полный текст см. рис. 3.71):

и тело формы закрывается операторами

На основании указанных операторов на экран будет выведено:

Рис. 3.73. Содержание формы сгенерированное обработчиком Lab6_3.php.

Если пользователь введет в форму (рис. 3.73) информацию,

показанную на рис. 3.74 и нажмет кнопку , то обработчик

Lab6_4.php, указанный в теле Lab6_3.php

получит информацию через $_POST, которая показана на рис. 3.75.

125

Рис. 3.74. Содержание формы (рис. 3.73) после указания Email.

Рис. 3.75. Результат работы обработчика (рис. 3.72) по нажатию рис. 3.74.

Рассмотрим ситуацию когда форма, показанная на рис. 3.69 остается не заполненной и сразу нажимается кнопка (рис. 3.76).

Рис. 3.76. Содержание формы без ввода информации.

В этом случае на экране получим сообщение (рис. 3.77) на основе выполнения условия .

126

Рис. 3.77. Содержание формы без ввода информации.

Если пользователь вернется на предыдущую страницу и укажет (рис.

3.78)

Рис. 3.78. Содержание формы c информацией.

Нажатие для содержимого рис. 3.78 приведет к результату (рис. 3.79).

Рис. 3.79. Содержание формы (файл Lab6_3.php) c информацией.

127

Тема №7. Работа с массивами

Цель работы: Обучение использованию массивов в сценариях PHP. Массив представляет собой набор переменных, объединенных одним

именем. Каждое значение массива идентифицируется индексом, который указывается после имени переменной-массива в квадратных скобках. Комбинацию индекса и соответствующего ему значения называют элементом массива.

1<?

2$i = 1024;

3$a[1] = 'abc';

4$a[2] = 100;

5$a['test'] = $i - $a[2];

7echo $a[1] . "<br>\n";

8echo $a[2] . "<br>\n";

9echo $a['test'] . "<br>\n";

10?>

В приведенном примере, в строке три объявляется элемент массива $a с

индексом 1; элементу массива присваивается строковое значение 'abc'. Этой же строкой объявляется и массив $a, так как это первое упоминание переменной $a в контексте массива, массив создается автоматически. В строке 4 элементу массива с индексом 2 присваивается числовое значение

100.

В строке же 5 значение, равное разности $i и $a[2], присваивется элементу массива $a со строковым индексом 'test'.

Как видите, индекс массива может быть как числом, так и строкой.

В предыдущем примере массив создавался автоматически при описании первого элемента массива. Но массив можно задать и явно:

1<?

2$i = 1024;

3$a = array( 1=>'abc', 2=>100, 'test'=>$i-100 );

4print_r($a);

5?>

Созданный в последнем примере массив $a полностью аналогичен массиву из предыдущего примера. Каждый элемент массива здесь задается в виде индекс=>значение. При создании элемента 'test' пришлось указать значение 100 непосредственно, так как на этот раз мы создаем массив "одним махом", и значения его элементов на этапе создания неизвестны PHP.

128

В строке 4 для вывода значения массива мы воспользовались функцией print_r(), которая очень удобна для вывода содержимого массивов на экран - прежде всего, в целях отладки.

Строки в выводе функции print_r разделяются обычным переводом строки \n, но не тэгом <br>. Для удобства чтения, строку print_r(..) можно окружить операторами вывода тэгов <pre>...</pre>:

echo '<pre>'; print_r($a); echo '</pre>';

Если явно не указывать индексы, то здесь проявляется свойство массивов PHP, характерное для числовых массовов в других языках: очередной элемент будет иметь порядковый числовой индекс. Нумерация начинается с нуля. Пример:

1<?

2$operating_systems = array( 'Windows', 'Linux', 'FreeBSD', 'OS/2');

3$operating_systems[] = 'MS-DOS';

4

5echo "<pre>";

6print_r($operating_systems);

7echo "</pre>";

8?>

Ниже приведенное задание 1 показывает особенность использования функции print_r и тега <pre>…</pre> (рис. 3.83 -3.84).

Примечание. Далее в данной теме заголовок типа (рис. 3.80) приводить не будем.

Рис. 3.80. Заголовок в HTML коде.

129

Задание 1. Означивание массива и вывод на экран. Lab7_0.php.

В представленной ниже программе (рис. 3.81) приведены несколько вариантов объявления массива в коде с последующим выводом содержимого массива на экран.

Код Lab7_0.php.

Рис. 3.81. Код Lab7_0.php.

Результат вывода элементов массивов с помощью кода Lab7_0.php.

Рис. 3.82. Вариант 1. Результат работы кода Lab7_0.php.

130

Отметьте, что втором варианте мы явно не указывали индексы: PHP автоматически присвоил числовые индексы, начиная с нуля.

Рис. 3.83. Вариант 2. Результат работы кода Lab7_0.php.

Рис. 3.84. Вариант 3. Результат работы кода Lab7_0.php.

Записи массив можно перебирать с помощью цикла for. Количество элементов массива возвращает оператор count.

Например, если в тело программы Lab7_0.php добавить строки (рис.

3.85)

Рис. 3.85. Модифицированный код Lab7_0.php.

Тогда результат будет

Рис. 3.86. Вариант 4. Результат работы кода Lab7_0.php.

Задание 2. Цикл foreach. Lab7_1.php.

Для перебора элементов массива предусмотрен специальный цикл foreach:

Соседние файлы в папке metoda