关于Fatal error: Can't use function return value in write context报错的解决方法!

来源:互联网 发布:linux版本查看 编辑:程序博客网 时间:2024/04/20 06:31

今天在微擎中碰到了个问题,代码在新服务器中没有报错正常显示,但是将代码放到老版本的服务器上,页面显示500错误,无法访问! 一脸懵逼!!!
想了下打开了微擎的开发者模式发现有个严重解析错误! 又是一脸懵逼!!!

懵逼过后想到原来也碰到过一次这种情况,于是找到了这个错误:Fatal error: Can’t use function return value in write context!

看了下代码想起来上次的问题 : empty()函数 用法出错!
官方文档中写了一条像我这样的小白比较容易忽视的一条用法:
empty() 只检测变量,检测任何非变量的东西都将导致解析错误!

我的错误代码:

if(empty(cache_load('catch_sum'))){    $do = 'cache'; //缓存为空 先跳到缓存

在这里cache_load() 是个函数,empty()不能解析函数的返回值,因此报错!

于是改正为:

$cache_load = cache_load('catch_sum');if(empty($cache_load)){    $do = 'cache'; //缓存为空 先跳到缓存

先用变量存一下返回值,然后用empty()去检测变量。


虽然在新服务器上错误的代码没有报错,仍正常显示,但为了避免迁移出现问题,大家还是按照官方要求多做个变量转存,再用empty检测!

错误的代码,在新服务器上没有报错,原因是啥?据本人猜测可能是php版本的问题,真正的原因,由于时间原因,我没有深究。还请知道的小伙伴留言告知,感激不尽!

阅读全文
0 0
原创粉丝点击