|
В РНР поддерживается ряд стандартных
переменных, предоставляющих в распоряжение
программиста довольно подробную
информацию о внутренней
конфигурации. Значения одних переменных
задаются РНР, другие изменяются в
зависимости
от операционной системы и web-сервера, с
которыми работает РНР.
Вместо подробного описания всех
стандартных переменных я выделю лишь те
переменные и функции, которые используются
на практике многими программистами.
Чтобы получить полный список переменных
web-сервера, окружения и РНР, определенных
для вашей конфигурации системы, достаточно
выполнить следующий фрагмент:
while (list($var,$value) = each($GLOBALS)) :
echo "<BR>$var =>
$value";
endwhile;
В результате выводится список наподобие
приведенного ниже. Потратьте немного
времени на просмотр полученных данных, а
затем разберите приведенные примеры.
GLOBALS =>
HTTP_GET_VARS => Array
HTTP_COOKIE_VARS => Array
HOSTSIZE => 1000
HOSTNAME => server1.apress.com
LOGNAME => unstrung
HISTFILESIZE => 1000
REMOTEHOST => apress.com
MAIL -> /var/spool/mail/apress
MACHTYPE => 1386
TERM => vt100
HOSTTYPE => i386-linux
PATH =>
/usr/sbin:/sbin:/usr/local /bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/Java/bin
HOME => /root
INPUTRC => /etc/inputrc
SHELL => /bin/csh
USER => nobody
VENDOR => intel
GROUP => root
HOST => server1.apress.com
OSTYPE => linux
PWD => /www/bin
SHLVL => 3_ => /www/bin/httpd
DOCUMENT_ROOT => /usr/local/apress/site.apress
HTTP_ACCEPT => */*
HTTP_ACCEPT_ENCODING => gzip, deflate
HTTP_ACCEPT_LANGUAGE => it.en-us;q=0.5
HTTP_CONNECTION -> Keep-Alive
HTTP_HOST => www.apress.com
HTTP_USER_AGENT => Mozilla/4.0 (compatible; MSIE 5.0: Windows 98;
CNETHomeBuild051099)
REMOTE_ADOR => 127.0.0.1
REMQTE_PORT => 3207
SCRIPT_FILENAME => /usr/local/apress/site.apress/j/environment_vars.php
SERVER_ADDR => 127.0.0.1
SERVER_AOMIN => admin@apress.com
SERVER_NAME => www.apress.com
SERVERJORT => 80
SERVER SIGNATURE =>
Apache/1.3.12 Server at www.apress.com Port 80
SERVER_SOFTWARE => Apache/1.3.12 (Unix) PHP/4.0.1
GATEWAY_INTERFACE => CGI/1.1
SERVER_PROTOCOL => HTTP/1.1
REQUEST_METHOD => GET
QUERY_STRING =>
REQUEST_URI => /j/environment_vars.php
SCRIPT_NAME => /j/environment_vars.php
PATH_TRANSLAETD => /usr/local/apress/site.apress/j/environment_vars.php
PHP_SELF => /j/environment_vars.php
argv => Array
argc => 0
var => argc
value => argc
Как видите, стандартные переменные
содержат разнообразные сведения — как
полезные, так и не очень. Вы можете вывести
любую из этих переменных по имени. Например,
следующая команда выводит IP-адрес
пользователя:
print "Hi! Your IP address is: $REMOTE_ADDR";
IP-адрес выводится в числовой форме (например,
208.247.106.187).
Кроме того, стандартные переменные могут
использоваться для сбора информации о
браузере и операционной системе
пользователя. Команда
print "Your browser is: $HTTP_USER_AGENT";
возвращает информацию следующего вида:
Your browser is: Mozina/4.0 (compatible: MSIE 5.0; Windows 98:
CNETHomeBuild051099)
Информация о браузере и операционной
системе, в которой он работает, может
пригодиться при построении страниц,
рассчитанных на специфические форматы
конкретных браузеров.
Для
работы с массивами стандартных переменных
необходимо включить директиву track_vars в файл
php.ini. В РНР версии 4.0.3 директива track_vars
включена постоянно.
Константы
Константой называется
именованная величина, которая не
изменяется в процессе выполнения программы.
Константы особенно удобны при работе с
заведомо постоянными величинами —
например, числом π (3,141592) или количеством
футов в миле (5280).
В РНР константы определяются функцией define(
). После того как константа будет
определена, вы не сможете изменить (или
переопределить) ее в этой программе.
Например, определение числа я в сценарии
РНР может выглядеть так:
define("'PI", "3.141592");
Определенную константу можно
использовать в программе:
print "The value of pi is". PI."<br>";
$pi2 - 2 * PI:
print "Pi doubled equals $pi2.";
Результат работы этого фрагмента будет
таким:
The value of pi is 3.141592.
Pi doubled equals 6.283184.
В этом фрагменте следует обратить
внимание на два обстоятельства. Во-первых, в
именах констант не указывается знак
доллара. Во-вторых, константу невозможно
модифицировать (например, присвоить ей
величину 2*РI); если константа используется в
вычислениях, то результат приходится
сохранять в другой переменной. |