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
这种方法不推荐,不做介绍。
有错请指正