这是在最近项目中遇到的一个问题,项目采用ThinkPHP5框架进行开发。一个功能写完之后测试时出现了“Can't use function return value in write context”的错误。刚开始以为是代码的问题,所以对代码进行了仔细的检查,后来翻译了一下才知道原意是:在这个情景中的函数里不能使用返回值。我去,好悲伤的一个故事啊!
下面是错误的截图:
既然知道了意思,那么解决起来就简单多了。
解决方法一:empty()使用变量。
- 将下面一行
- empty(Cache::get($cache_key))
- 改为:
- $temp_cache = Cache::get($cache_key);
- empty($temp_cache)
小记:在PHP版本5.4以下类似empty()、is_array()的函数不能直接判断某功能的返回值,只能写成变量的形式。
解决方法二:升级PHP版本。
我查了下我本地PHPStudy的版本的php5.4,当版本升级到5.6的时候,该错误就没有了。目前PHP最新版本是7.2,不管是性能还是支持方面都是不错的,所以在项目开发中也建议大家采用稳定的高版本。