【问题标题】:Doesn't seem to work: if($_SERVER['REQUEST_METHOD'] == 'GET') for GET requests?似乎不起作用: if($_SERVER['REQUEST_METHOD'] == 'GET') 用于 GET 请求?
【发布时间】:2010-05-06 14:55:57
【问题描述】:

下面的代码不管有没有传递的GET变量都会执行:

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

以下仅在传递 GET 变量时执行:

if($_GET)
{
    //Do something
}

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

有什么想法吗?谢谢!

【问题讨论】:

    标签: php get methods request


    【解决方案1】:

    第一个代码将在请求方法为 GET 时执行,即使没有查询字符串。
    它不会以 POST 请求类型执行,即使有查询字符串。
    您必须了解,“GET”请求类型并不意味着在 URL 中传递了变量。

    因此,这两个代码是为完全不同的任务编写的。

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

    【讨论】:

    • 哦!谢谢你的解释。我没有意识到 $_GET 超全局总是存在的。
    • 它始终存在,并且始终是一个数组。但是你的情况还可以(我更正了我的答案)。如果没有传递任何内容,则它是一个空数组,并且您的代码将不会被执行。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 2019-11-01
    • 1970-01-01
    相关资源
    最近更新 更多