PHP 使用 $_POST 提示 Undefined array key 怎么办?

前段时间换了一个服务器,顺便把PHP也升级了一下,升级成了 PHP8.1 了。结果因为 PHP8.0 之后 对于语法要求更严格了,出了各种错误。

其中一个就是类似于下面这样的警告提醒:

PHP Warning:  Undefined array key “xxx” in demo.php line 10

意思就是 数组键值未定义 的一个警告。

我看了,其实里面用了一个 $_POST 获取表单的内容,就是类似下面这样的代码:

$x= $_POST["xxx"];

如果 xxx 不存在的话,就会报错。正常情况下,如果有数据提交,就获取 xxx 内容。没有数据提交 $x 就是空值。

但是在 PHP 8 下面,这就会出现警告。

其实我们把这个改一下就可以,先判断是否存在 Post 请求,如果有再获取内容。

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

这样,就不会有警告了。

补充:如果用 $_GET 的时候,也会遇到同样的错误,解决方法:$_GET 提示 Undefined array key 错误的解决方法

再解决 $_GET 错误提示的时候,遇到一个变量未声明的错误提醒:

PHP Warning:  Undefined variable $x in demo.php on line 1010

可以在前面做一个初始化:

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

先把 $x 初始化为空值,这样后面就不会出现警告提示了。

重要声明

本网站的文章部分内容可能来源于网络,如有侵犯你的权益请联系邮箱:wxzn8@outlook.com
站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请在下载24小时内删除!本站资源大多存储在云盘,如发现链接失效请反馈,我们会及时更新。

给TA打赏
共{{data.count}}人
人已打赏
深度

荐B站UP主在用的产品,隐藏着哪些消费密码?

2023-1-3 23:57:22

学习

AWS认证之路

2023-1-2 18:44:46

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索