前言
今天写某个监控的时候遇到了一个问题,写好的代码在本地运行不会出现 Warning: Undefined array key "data" in
,但是在服务器上运行的时候就出现,经过检查发现服务器的PHP版本是8.0,而我本地的是7.3,所以在服务器上运行的时候就报了个警告
解决问题
出现这个问题的原因主要就是在PHP8.0之后对于语法这一块就相对更加严格了
然后我的代码是
$data["data"]
因为是直接去获取这个值,但是在没有这个值的情况下他就属于一个未定义的key值,所以这个key未定义的情况下,就会报警告,虽然不影响运行,但是我不喜欢
那么最简单的解决办法就是使用 isset()
函数
isset()
:检测变量是否已声明并且其值不为 null
使用这个函数呢,在我的变量未定义或者为 null
的情况下就会返回false,反之则返回true
还有一种方法就是屏蔽掉报错信息,但是这种方法是极其不推荐的,所以不介绍
结束
希望各位同学在调试的时候一定要检查好环境是否一致,要不然可能会把很多时间花在找问题上面!
1 条评论
PHP版本升级就是语法更严格了,没有5时代的随意洒脱(坏习惯)了