logo
Vvedenie_v_Veb_programmirovanien_2 / Vvedenie_v_Veb_programmirovanien_2

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

Система 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[]

Следующий пример выполняет вывод значений элементов суперглобального массива$_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

)

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