2010-05-06 39 views
1

下面的代码执行是否有GET变量通过与否:

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

下,只有当GET变量传递执行:

if($_GET) 
{ 
    //Do something 
} 

我的印象是,第一种方法是更好,但现在我很困惑。

任何想法?谢谢!

回答

4

第一个代码将在请求方法为GET时执行,即使没有查询字符串存在。
即使存在查询字符串,也不会执行POST请求类型。

您必须明白'GET'请求类型并不意味着该变量已在URL中传递。

所以这两个代码是完全不同的任务。

如果您只需检查变量是否在URL中传递,请使用第二个变量。

+0

OH!谢谢你的解释。我没有意识到$ _GET超全局总是存在的。 – 2010-05-06 15:03:38

+0

它始终存在,并且始终是一个数组。但是你的情况没问题(我纠正了我的答案)。如果没有任何东西被传递,它是一个空的数组,并且你的代码不会被执行。 :) – Macmade 2010-05-06 15:07:31

+0

哦!万分感谢! – 2010-05-06 15:12:40