在项目开发过程中,出现某一接口文件间歇性出现500错误,间歇性出现说明是有条件才会产生,查看错误日志显示:
Fatal error: Can't use function return value in write context in /home/xxx/xxxxm/api/sxxx/lGoodsApi.class.php on line 82
上网查了下说这是 TP 的一个 bug,提高 php 版本就可以了。考虑到成本太高细细看了看错误发生行的代码如下:
if(empty(S('reception_cat_list'))) {
结合错误日志的说明Can't use function return value in write context ,不能使用返回值***(原谅我的英文水平低下)推断可能是TS 的S方法在emty方法中再加上服务器环境因素(本项目一台是apache,一台是php-fpm仅PHP版本有出入)会出现语法错误的问题。
知道错在哪就好办了,把代码修改成:
$cache_data = S('reception_cat_list');
if(empty($cache_data)) {
运行,问题没有了。看来在TS 中不用empty 和S直接结合使用,会有不兼容问题。
author:gj