检查是否只定义了一个GET参数?

时间:2014-09-23 20:38:31

标签: php if-statement parameters get isset

我有一些代码,基本上包含一个特定于页面的标题,只有在我的URL中定义了一个GET参数时才应加载。

例如,如果我只希望标题显示是否设置了URL中的“thisonly”参数,那么该URL是:

http://www.example.com?thisonly=w&thisone=q&thistwo=q&thisthree=q

以前我一直在使用此代码进行检查:

    if((isset($_GET[thisonly])) && (!isset($_GET[thisone])) && (!isset($_GET[thistwo])) && (!isset($_GET[thisthree]))) {
    // Run this code
    }

在上面的例子中,代码不会运行,因为设置了其他参数。

然而,这将是一个更新的麻烦,特别是如果我最终添加更多参数,并将不得不返回并添加到此代码,以确保它们也没有设置。

有没有办法将其缩短到相当于

    if((isset($_GET[thisonly])) && (!isset($_GET[nothingelse]))) {
    // Run this code
    }

例如,如果“thisonly”是唯一的参数集,并且没有设置其他参数,那么运行代码吗?

感谢任何帮助 - 谢谢!

1 个答案:

答案 0 :(得分:2)

if(count($_GET) === 1 && isset($_GET['thisonly'])) {

这会检查$_GET是否只包含一个元素且$_GET['thisonly']