php之empty()函数常识性的错误

写在前面的东西
大家都很忙,如果不想看下面业务场景(一大堆废话)描述的,直接看本段结论:empty()只会检测变量,检测任何非变量都将导致解析错误!
场景描述
打开后台,点开某个功能模块,额,报错?我的天,之前都是好好的呀,而且错误信息还是500!

然后下面便开始坑爹的调试过程!
1.代码可能不是最新的,拉取最新的,无效。
2.域名不对?重新配置一下域名,无效。
3.本账号没有权限?添加本账号权限,无效;切换成管理员账号,依然无效。
4.Apache设置拒绝访问了?查看配置,没有任何问题!

然后实在不行,看了下其他同事后台,竟然没任何报错信息!看一下版本同事的php版本5.5的,自己的5.4的!额,这就搞事情了。

然道是版本兼容性问题?于是乎,找到这个模块对应的控制器,额,5000行代码,好吧。那就利用最最原始的二分法调试吧,把控制

里的内容全部清空,再运行一下,额,有效了!

说明路由进来了,那好,还原代码,去掉一半代码,报了500;继续,再一半代码。。。

终于定位到了有问题的代码了

好吧,这里的答案就是我开头所说的只能检测变量!所有要稍微修改一下,

嗯,再运行,一切ok了。至于同事运行正常,那是因为php版本的问题,empty的错误被屏蔽了

程序还是会运行下去。我的5.4的版本就直接报服务器错误了!除了empty函数,还有isset函数也要注意。

我要看一下log日志,看看是哪个大神提交的代码,我要怼回去。。。

 

posted @ 2017-08-09 16:35  十月桂花香十里  阅读(1146)  评论(2编辑  收藏  举报
我一辈子走过许多地方的路, 行过许多地方的桥, 看过许多次数的云, 喝过许多种类的酒, 如今却只爱一个正当最好年纪的人。