Четверг, 16.05.2024, 08:55
DigitalBox
Приветствую Вас Гость | RSS
Главная Встроенные массивы Регистрация Вход
Меню сайта

Встроенные массивы



В языке РНР имеется несколько встроенных массивов, которые можно использовать при написании сценариев. При этом в них содержится различная полезная информация. Например, данные об используемом сервере (заголовках, настраиваемых путях и размещении сценариев) сохраняются в массиве $_SERVER. Так, информация об имени текущего запущенного сценария содержится в переменной $_SERVER[' PHP_SELF' ].


Использование суперглобальных массивов

На данный момент два набора встроенных массивов содержат одну и ту же информацию. Одни из них были включены в РНР 4.1.0 и назывались суперглобальными (superglobal) или автоглобальными (autoglobals), поскольку могли использоваться в любом фрагменте кода, даже внутри функций. Более ранние версии массивов с длинными именами, такими как $HTTP_SERVER_VARS, предварительно необходимо было объявить глобальными, чтобы иметь возможность использовать их в функциях. В общем случае рекомендуется использовать новые версии массивов, имена которых начинаются с символа подчеркивания (_). К старым версиям необходимо прибегать только в тех случаях, когда использование версий РНР ниже 4.1.0 неизбежно.

Обновленный конфигурационный файл php.ini, используемый в РНР 5, позволяет предотвратить автоматическое создание старых массивов с длинными именами. Вряд ли есть необходимость их использования, однако некоторые старые сценарии все еще могут их использовать. Следующая строка в файле php.ini позволяет управлять этими установками:

register_long_arrays = On

На данный момент по умолчанию это значение равно On. Если старые сценарии не используются, это значение стоит изменить на Off.

И хотя в данный момент это значение по умолчанию равно On, в будущем ситуация может измениться, и это значение станет равным Off. Если, например, запускается сценарий и выдается ошибка в строке кода, содержащей переменную типа $HTTP_GET_VARS, то следует проверить настройки в файле php.ini, чтобы иметь возможность использовать массивы с длинными именами. Если это значение равно Off, значит, данные массивы не были созданы вообще и их использование запрещено.

Список встроенных массивов и их краткое описание представлены в таблице ниже:

Массив Описание
$GLOBALSСодержит все глобальные переменные. Например, если переменной $testvar присваивается значение 1, к ней можно получить доступ следующим образом: $GLOBALS['testvar']
$_POSTСодержит все переменные формы, переданные с помощью метода POST: method = "post"
$HTTP_POST_VARSТо же, что и $_POST
 $_GETСодержит все переменные, переданные с предыдущей страницы как часть URL-адреса, а также переменные формы, переданные с помощью метода GET: method = "get"
$HTTP_GET_VARSТо же, что и $_GET
$_COOKIEСодержит все переменные cookie
$HTTP_COOKIE_VARSТо же, что и $_COOKIE
 $_SESSIONСодержит все переменные сеанса
$HTTP_SESSION_VARSТо же, что и $_SESSION
 $_REQUESTСодержит все переменные, которые содержатся в массивах $_POST, $_GET и $_SESSION
 $_FILESСодержит имена всех загруженных файлов
$HTTP_FILES_VARSТо же, что и $_FILES
 $_SERVERСодержит информацию об используемом сервере. Поскольку Web-серверы бывают разные, то и информация может быть различной
 $HTTP_SERVER_VARSТо же, что и $_SERVER
 $_ENVСодержит информацию об операционной системе: имя, системный диск, путь к временному каталогу. Очевидно, что эта информация зависит от используемой операционной системы
$HTTP_ENV_VARSТо же, что и $_ENV


Использование массивов $_SERVER И $_ENV

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

foreach($_SERVER as $key => $value)
{
     echo "Ключ = $key, Значение = $value\n";
}

В результате получим:

Ключ = DOCUMENT_ROOT, Значение = с:/program files/apachegroup/apache/htdocs
Ключ = PHP_SELF, Значение = /test .php

Элемент с ключом DOCUMENT_ROOT содержит путь к каталогу, в котором Web-сервер Apache ищет требуемые Web-страницы. Элемент с индексом PHP_SELF содержит имя сценария, который выполняется в данный момент.

Для просмотра информации в массиве $_ENV можно также воспользоваться функцией phpinfо() с аргументом 16:

phpinfо(16);

Встроенные массивы можно использовать только тогда, когда включен режим track-vars. По умолчанию он включен начиная с версии РНР 4.0.3, кроме тех случаев, когда администратор намеренно не выключает его при установке РНР. Однако это происходит редко. Но если есть подозрение, что режим track-vars отключен, это следует проверить с помощью функции phpinfо(). И, если это так, необходимо переустановить модуль РНР.


Использование переменных $argv и $argc

Иногда информацию для сценария необходимо передать извне. Одним из возможных способов является передача данных посредством командной строки при запуске сценария. Однако для Web такой метод используется редко, в отличие от запуска РНР CLI из командной строки. Пусть, например, необходимо написать программу, суммирующую два числа, значения которых нужно передать при запуске сценария. Это можно осуществить с помощью следующей команды:

php add.php 2 3

В этом выражении add.php — имя сценария, а 2 и 3 — числа, которые необходимо сложить. Эти значения можно получить в сценарии, используя массив $argv. В нем содержится следующая информация:

$argv[0] = add.php
$argv[1] = 2
$argv[2] = 3

Таким образом, массив $argv содержит по крайней мере одно значение — имя сценария.

Затем в сценарии можно воспользоваться операцией суммирования двух чисел:

$sum = $argv[1]+$argv[2];
echo $sum;

В результате получим значение 5.

Можно воспользоваться также и переменной $argc. Она используется для подсчета количества элементов в массиве $argv. Минимальное значение переменной $argc — 1, которое соответствует имени сценария. В предыдущем примере ее значение равно 3.

Форма входа

Мини-чат

Календарь новостей
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Поиск

Друзья сайта
Скажи сайту спасибо
ЯндексЯндекс. ДеньгиХочу такую же кнопку



Получить WMR-бонус на свой кошелек!

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright MyCorp © 2024 Бесплатный конструктор сайтов - uCoz