在項目開發過程中,出現某一接口文件間歇性出現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
