|
||||||||||
Переменные вне PHPHTML-формы (GET и POST)Когда форма отправляется в PHP-скрипт, любые переменные этой формы автоматически делаются доступными скрипту PHP. Если опция конфигурации track_vars включена/on, то эти переменные будут находиться в ассоциативных массивах $_POST, $_GET и/или $_FILES, в соответствии с источником переменной в вопросе. Дополнительно об этих переменных см. Предопределённые переменные.
Когда такая форма отправляется на сервер, значение из поля ввода text будет доступно в $_POST['username']. Если директива конфигурации register_globals включена/on, то эта переменная будет также доступна как $username в глобальной области видимости.
PHP также понимает массивы в контексте переменных формы (см. соответствующий faq). Вы можете, например, сгруппировать взаимосвязанные переменные или использовать эту возможность для запроса значений из списка множественного выбора select: В PHP 3 использование переменной массива формы ограничено одномерными массивами. В PHP 4 таких ограничений нет. Имена переменных при отправке изображенияПри отправке формы возможно использование изображения/image вместо стандартной кнопки submit с помощью тэга такого вида:
Когда пользователь щёлкает в каком-либо месте изображения, соответствующая форма передаётся на сервер с двумя дополнительными переменными: sub_x и sub_y. Они содержат координаты щелчка. Опытные программисты могут заметить, что фактические имена переменных, отправляемые браузером, содержат точку, а не символ подчёркивания, но PHP конвертирует точку в символ подчёркивания автоматически. Куки HTTPPHP прозрачно поддерживает куки HTTP, как определено в Netscape's Spec. Куки это механизм хранения данных на удалённом браузере и отслеживания или идентификации с их помощью ответов пользователя. Вы можете устанавливать куки функцией setcookie() . Куки являются частью HTTP-шапки/header, поэтому функция SetCookie обязана вызываться до любого вывода, высылаемого браузеру. Это такое же ограничение, как и для функции header() . Любые куки, высылаемые вам с этого клиента, автоматически конвертируются в PHP-переменную точно так же, как и GET и POST-данные. Если вы хотите присвоить несколько значений одной куке, просто добавьте [] в имя куки. Например:
Обратите внимание, что эта кука/cookie замещает предыдущую куку с тем же именем, если только path или domain не отличаются. Так, для приложения shopping cart вы можете захотеть сохранить счётчик/counter и передать его. То есть:
Переменные окруженияPHP автоматически делает переменные окружения доступными как нормальные переменные PHP.
Поскольку информация, приходящая через механизмы GET, POST и Cookie, также автоматически создаёт переменные PHP, иногда бывает лучше явно считывать переменную из окружения, чтобы гарантировать получение правильной версии. Функция getenv() может использоваться для этого. Вы можете также установить переменную окружения функцией putenv() . Точки в именах входящих переменныхОбычно PHP не изменяет имена переменных при передаче их скрипту. Однако нужно отметить, что точка (dot, period, full stop) не является правильным символом в имени PHP-переменной. Посмотрим на такое имя:
Разборщик видит теперь имя переменной $varname, за которым идёт операция конкатенации строк, а затем идёт голая строка (т.е. строка без кавычек, которая не совпадает ни с одним известным ключевым или зарезервированным словом) 'ext'. Очевидно, это не тот результат, который ожидался. Поэтому важно подчеркнуть, что PHP будет автоматически заменять любые точки в именах входящих переменных на символы подчёркивания. Определение типов переменныхПоскольку PHP определяет типы переменных и конвертирует их (обычно) так, как нужно, не всегда бывает очевидно, какой тип имеет данная переменная в данное время. PHP имеет несколько функций, которые определяют тип переменной. Это gettype() , is_array() , is_float() , is_int() , is_object() и is_string() . |
||||||||||
|