2010-05-06 2 views
1

Следующий код выполняет ли GET переменные передаются или нет:

if($_SERVER['REQUEST_METHOD'] == 'GET') 
{ 
    //Do something 
} 

Следующая выполняется только когда передаются GET переменные:

if($_GET) 
{ 
    //Do something 
} 

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

Любые идеи? Благодаря!

ответ

4

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

Вы должны понимать, что тип запроса «GET» не означает, что переменные были переданы в URL-адресе.

Таким образом, два кода выполнены для совершенно разных задач.

Если вам просто нужно проверить, были ли переданы переменные в URL-адресе, используйте второй.

+0

OH! Спасибо за ваше объяснение. Я не понимал, что суперглобальное свойство $ _GET всегда существует. –

+0

Он всегда существует и всегда является массивом. Но ваше состояние в порядке (я исправил свой ответ). Если ничего не передано, это пустой массив, и ваш код не будет выполнен. :) – Macmade

+0

О! Большое спасибо! –