什么是php函数,用于同时检查$ _GET参数的存在并访问其值

时间:2018-11-02 20:04:34

标签: php superglobals

在PHP中,为避免Undefined Index错误,可以编写

if(isset $_GET['var1'] && $_GET['var1'] == 'My Matching Text'){
    //do stuff
}

但是我记得使用一个我认为会允许这样的函数(或语言构造):

if([THE FUNCTION I'M LOOKING FOR]($_GET['var1']) == 'My Matching Text'){
    //do stuff
}

我忘了这个函数的名字是什么?

2 个答案:

答案 0 :(得分:1)

您可以在PHP 7+中使用Null coalescing operator (??),它允许您设置“未定义”值(在此示例中,我使用空白'')...

if(($_GET['var1']??'') == 'My Matching Text'){
    //do stuff
}

答案 1 :(得分:1)

您在考虑filter_input函数吗?

if (filter_input(INPUT_GET, 'var1') == 'My Matching Text') {
    //do stuff
}

它带有第三个参数,您可以在其中指定不同的过滤器类型,这很有用。默认类型根本不会过滤,但是它会返回值(如果未设置键,则返回null)而没有未定义的索引通知。

我不知道这与使用其他答案所示的使用空合并运算符相比,在性能方面有何不同,但我认为此函数调用会贵一些,因此该运算符将是一种更好的方法除非您要使用其中一种过滤器,否则请继续。