| |||||||||||||||||||||||||||||||||
Атомная энергетика. Ядерные реакторы АЭС. Атомный флот. Ядерное оружие |
|||
| РБМК-1000 | |||
| Гражданский суда | |||
| Авиация | |||
Высшая математика |
|||
| Задачи | |||
| Практикум | |||
| Карта сайта | |||
Переменные в переменных |
В некоторых ситуациях бывает удобно использовать переменные, содержимое которых может динамически интерпретироваться как имя другой переменной. Рассмотрим типичный случай присваивания: $recipe = "spaghetti"; Оказывается, строку "spaghetti" можно интерпретировать как имя переменной - для этого в команде присваивания перед именем исходной переменной ставится второй знак $: $$recipe = "& meatballs"; Эта команда присваивает строку "& meatballs" переменной с именем "spaghetti". Следовательно, следующие две команды выводят одинаковые результаты: print $recipe $spaghetti; print $recipe $($recipe); В обоих случаях будет выведена строка "spaghetti & meatballs". Стандартные переменные В РНР поддерживается ряд стандартных переменных, предоставляющих в распоряжение программиста довольно подробную информацию о внутренней конфигурации. Значения одних переменных задаются РНР, другие изменяются в зависимости от операционной системы и 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 включена постоянно. |
| На главную |