如何在PHP中使用数组确定空的$ _GET查询字符串

时间:2019-01-02 16:19:29

标签: php forms get

我正在尝试检查表单中的所有查询请求是否都已填写并且是否受到阻碍。

我有一个已经可以使用的代码,但是我想将其设置为其他数组以缩短代码。

我的表单查询为a,b,c
下面是我当前的代码:

if ( isset($_GET) && !isset($_GET['a']) || !isset($_GET['b']) || !isset($_GET['c']) ) 

{ //Reject call
}else{
//Process call
}

我想用一个数组来缩短这段代码,这是我当前的代码,但这不起作用。

$supportedrequests = array('a','b','c')
if (isset($_GET) && !isset($_GET[(in_array($supportedrequests))]) ) {
{ //Reject call
}else{
//Process call
}

任何帮助将不胜感激。

更新 这个问题不是Using if(!empty) with multiple variables not in an array的重复,因为它专门基于检查isset($_GET)查询本身是否存在,此外,在所述链接中没有完整表达该主题的答案。

1 个答案:

答案 0 :(得分:0)

如果要使用检查请求方法GETPOST,请使用此方法:$_SERVER['REQUEST_METHOD'] == 'POST'

要检查多个参数,可以声明函数并全部检查。

function allIsset($params)
{
    foreach ($params as $param) {
        if (!isset($_GET[$param])) return false;
    }
    return true;
}

或者您可以使用此方法(如果只需要更少的代码行)

$supportedrequests = array('a','b','c');
if (count(array_intersect(array_keys($_GET), $supportedrequests)) < count($supportedrequests)) {
//reject
}