Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Веб программирование.Начало пути.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
7.81 Mб
Скачать

Массивы и инициализация массивов

PHP поддерживает массивы с числовыми индексами и ассоциативные массивы, в качестве индексов в которых используются строки. Индексы массивов в квадратных скобках изменяются, начиная с 0:

$massiv[0] = 'name';

$massiv[1] = 'phone';

Ассоциативные массивы (хеши) используют в качестве индексов строковые значения - ключи.

$new_massiv['name'] = 'Valera';

$new_massiv['email'] = 'rvs@bsu.by';

Массив может инициализироваться одним из двух способов: последовательным присвоением значений, или посредством конструкции array(). При последовательном добавлении значений в массив, просто записываются значения элементов массива, используя пустой индекс. При этом каждое следующее значение будет добавляться в качестве последнего элемента массива.

$massiv[] = "третий"; //$massiv[2] = " третий "

$massiv[] = "четвертый";//$massiv[3] = " четвертый "

Второй способ создания массива реализуется путем вызова функции array():

$massiv = array('one','two','three');

Для ассоциативных массивов такой вызов будет иметь вид:

$new_massiv = array('name' => 'nobody', 'email' => 'mail@bsu.by');

Между индексом и значением помещается здесь знак =>. Рассмотрим пример:

<?php //pr45

$massiv = array('one','two','three');

$massiv[5]="5";

$massiv[6]="6";

$massiv[]="7";

print_r($massiv);

$new_massiv = array('name' => 'nobody', 'email' => 'mail@bsu.by');

print_r($new_massiv);

print $new_massiv['name']

?>

Результат:

Array ( [0] => one [1] => two [2] => three

[5] => 5 [6] => 6 [7] => 7 )

Array ( [name] => nobody [email] => mail@bsu.by )

nobody

Функция print_r() используется для вывода всего массива.

PHP содержит также суперглобальные переменные-массивы, которые всегда присутствуют и доступны для всех блоков сценария PHP. Вот эти суперглобальные переменные PHP:

$_GET[], $_POST[], $_REQUEST[], $_COOKIE[], $_FILES[],

$_SERVER[], $_ENV[], $_SESSION[]

Массив $_ENV содержит переменные среды окружения, как и в С++. Другие суперглобальные переменные PHP будут описаны в дальнейшем. Следующий пример выполняет вывод значений элементов суперглобального массива $_SERVER

<?php //pr46

//print_r($_GET); //print_r($_POST); //print_r($_REQUEST);

//print_r($_COOKIE ); //print_r($_FILES);

print_r($_SERVER);

//print_r($_ENV); //print_r($_SESSION);

?>

Результаты:

Array

( [COMSPEC] => C:\WINDOWS\system32\cmd.exe

[DOCUMENT_ROOT] => z:/home/localhost/www

[HTTP_ACCEPT] => image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*

[HTTP_ACCEPT_ENCODING] => gzip, deflate

[HTTP_ACCEPT_LANGUAGE] => ru

[HTTP_CONNECTION] => Keep-Alive

[HTTP_HOST] => localhost

[HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)

[PATH] => \usr\local\ImageMagick;\usr\local\php5; C:\PROGRA~1\Borland\CBUILD~1\Bin; C:\PROGRA~1\Borland\CBUILD~1\Projects\Bpl; C:\WINDOWS\system32; C:\WINDOWS; C:\WINDOWS\System32\Wbem

[REMOTE_ADDR] => 127.0.0.1

[REMOTE_PORT] => 1071

[SCRIPT_FILENAME] => z:/home/localhost/www/myprimers/pr44.php

[SERVER_ADDR] => 127.0.0.1

[SERVER_ADMIN] => webmaster@localhost

[SERVER_NAME] => localhost

[SERVER_PORT] => 80

[SERVER_SIGNATURE] => <ADDRESS>Apache/1.3.33 Server at <A HREF="mailto:webmaster@localhost">localhost</A> Port 80</ADDRESS>

[SERVER_SOFTWARE] => Apache/1.3.33 (Win32) PHP/5.1.6

[SystemRoot] => C:\WINDOWS

[WINDIR] => C:\WINDOWS

[GATEWAY_INTERFACE] => CGI/1.1

[SERVER_PROTOCOL] => HTTP/1.1

[REQUEST_METHOD] => GET

[QUERY_STRING] =>

[REQUEST_URI] => /MyPrimers/pr44.php

[SCRIPT_NAME] => /MyPrimers/pr44.php

[PATH_TRANSLATED] => z:/home/localhost/www/myprimers/pr44.php

[PHP_SELF] => /MyPrimers/pr44.php

[REQUEST_TIME] => 1196893515

[argv] => Array ( ) [argc] => 0)