Я никогда не говорил бы.
, Если бы я хотел, чтобы что-то было установлено с помощью различных методов, я кодировал бы для каждого из них, чтобы напомнить мне, что я сделал его тот путь - иначе Вы могли бы закончить с вещами, перезаписываемыми без понимания.
не был Должен он работать как это:
$ _GET = не разрушительные действия (сортировка, записывая действия, запросы)
$ _POST = разрушительные действия (удаление, обновляя)
$ _COOKIE = тривиальные настройки (предпочтения таблицы стилей и т.д.)
$ _SESSION = не тривиальные настройки (имя пользователя, вошел в систему?, уровни доступа)
Иногда Вы могли бы хотеть, чтобы тот же сценарий был назван с несколькими различными путями. Форма отправляет, и вызов Ajax приходит на ум. В большинстве случаев, однако, itВґs лучше, чтобы быть явным.
кроме того, см. http://docs.php.net/manual/en/ini.core.php#ini.request-order о том, как другие источники переменных перезаписывают друг друга, если существует коллизия имени.
$_REQUEST
только ярлык должен препятствовать тому, чтобы Вы тестировали сообщение, добраться и кулинария, если данные могут прибыть из какого-либо из них.
Существуют некоторые ловушки:
$_REQUEST
в этом случае.Тем не менее, если Вы знаете то, что Вы делаете, затем это - просто другой удобный прием PHP.
Я использовал бы его, если бы я хотел быстро обновить var, который может прибыть из нескольких источников. НАПРИМЕР:
Чтобы проверить, активна ли сессия все еще независимо от пути, идентификатор сессии передается.
Для ответа, "что происходит, когда все 3 существуют" вопрос ответ, "это зависит".
PHP автозаполняет $ _REQUEST на основе request_order директивы (или variables_order, если request_order отсутствует) в PHP.INI. Значение по умолчанию обычно является "GPC", что означает, ДОБИРАЮТСЯ, загружается сначала, тогда POST загружается (перезапись ДОБИРАЮТСЯ, если существует коллизия), то cookie загружаются (перезапись получают/отправляют, если существует коллизия). Однако можно изменить эту директиву в файле PHP.INI. Например, изменение его к "CPG" заставляет cookie загрузиться сначала, затем отправить, затем добраться.
До, когда использовать его? Я буду повторять чувство "Никогда". Вы уже не доверяете пользователю, итак, почему дают пользователю больше инструментов? Как разработчик, необходимо знать, где Вы ожидаете, что данные прибудут из. Это - все о сокращении Вашей области поверхности атаки.
Когда Вы не уверены, где значения заполняются или когда Вы используете их обоих и хотите циклично выполниться по всем значениям и POST и ПОЛУЧИТЬ методы.
Я использую POST, когда я не хочу, чтобы у людей был легкий доступ к тому, что передается, и я использую, ДОБИРАЮТСЯ, когда я не возражаю против них видящий значение в URL. Я обычно не использую cookie для того, хотя я нахожу, что СЕССИЯ хорошо для сохранения значений (хотя наличие надлежащего реестра является лучшим способом использовать это).