2010-05-06 66 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