网络知识 娱乐 PHP8中使用$_POST或者$_GET出现Undefined array key “xx“

PHP8中使用$_POST或者$_GET出现Undefined array key “xx“

PHP有了8的版本之后,就进行了升级,这个时候突然爆出来了一个莫名的错误。

例如:

$_GET['register_tag'];

报错:

我们可以根据这个错误提示,了解到是$_POST或者$_GET获取的表单返回数组的key值未定义,因为我们是直接获取这个值,但是如果这个key未定义的话,就会报错。原因是因为 PHP8.0 之后 对于语法要求更严格了。


解决方法1:

方法思路:查看本页面是否存在POST或者GET请求

方法:$_SERVER['REQUEST_METHOD']

示例:

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $a = $_POST['xxx'];
}

解决方法2(推荐):

方法思路:判断$_POST['xxx']或者$_GET['xxx']是否已设置并且非 NULL

方法:isset()函数

示例:

isset($_GET['register_tag']);

如果我们使用这一个方式的话,如果没有设置或为NULL则为false,反之为true

这样的话,这个变量就会有一个默认值,可以用这一个方式来避免报错提示。

我们经过判断后,再进行一次赋值,即可使用。可以用三目运算进行判断

isset($_GET['register_tag'])?$register_tag = $_GET['register_tag']:$register_tag = NULL

解决方法3:

方法思路:直接屏蔽报错信息

方法:error_reporting(0);或者修改php.ini

这种方法不推荐,不做介绍。 


有错请指正