Какой из $ _REQUEST, $ _GET и $ _POST самый быстрый? - PullRequest
173 голосов
/ 18 декабря 2009

Какой из этих кодов будет быстрее?

$temp = $_REQUEST['s'];

или

if (isset($_GET['s'])) {
  $temp = $_GET['s'];
}
else {
  $temp = $_POST['s'];
}

Ответы [ 14 ]

1 голос
/ 18 декабря 2009

Я бы использовал $_POST и $_GET, потому что в отличие от $_REQUEST их содержание не зависит от variables_order.
Когда использовать $_POST и $_GET, зависит от того, какая операция выполняется. Операция, которая изменяет данные, обрабатываемые с сервера, должна выполняться с помощью запроса POST, тогда как другие операции должны выполняться с помощью запроса GET. Например, операция, которая удаляет учетную запись пользователя, не должна выполняться непосредственно после того, как пользователь щелкнет ссылку, а просмотр изображения можно выполнить по ссылке.

1 голос
/ 18 декабря 2009

Я использую только _GET или _POST. Я предпочитаю иметь контроль.

Что мне не нравится ни в одном фрагменте кода в OP, так это в том, что они отбрасывают информацию о том, какой метод HTTP использовался. И эта информация важна для очистки входных данных.

Например, если скрипт принимает данные из формы, которая будет введена в БД, тогда в форме лучше использовать POST ( использовать GET только для идемпотентных действий ). Но если скрипт получает входные данные через метод GET, то он должен (обычно) быть отклонен. Для меня такая ситуация может потребовать записи нарушения безопасности в журнал ошибок, поскольку это признак того, что кто-то что-то пытается.

При наличии любого фрагмента кода в OP эта очистка была бы невозможна.

1 голос
/ 18 декабря 2009

Я бы использовал второй метод, так как он более явный. В противном случае вы не знаете, откуда берутся переменные.

Почему вы все равно должны проверять GET и POST? Конечно, использование одного или другого имеет больше смысла.

0 голосов
/ 18 декабря 2009

Вы преждевременно оптимизируете. Кроме того, вам следует подумать о том, следует ли использовать GET для вещей, которые вы отправляете, из соображений безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...