ECSHOP提示Strict Standards: Only variables should be passed by reference in报错的解决方法
保哥将之前在PHP5.3上安装的ECSHOP网站搬到PHP5.4的主机上时,发现首页顶部、左侧和底部出现:
Strict Standards: Only variables should be passed by reference in D:\www\includes\cls_template.php on line 418
的报错信息。原因是因为PHP5.3以上的版本默认只能传递具体的变量,而不能通过函数的返回值来传递,所以解决办法就是这段代码中的explode就要移出来重新进行赋值:
找到includes目录下的cls_template.php文件进行编辑,查找到以下代码:
$tag_sel = array_shift(explode(' ', $tag));
替换为:
$tagArr = explode(' ', $tag); $tag_sel = array_shift($tagArr);
保存之后出错页面顶部的报错没掉了,左侧和底部如果还有报错还需要去ecshop的后台点击清除缓存才能去除。
另一种解决方法是修改php.ini的配置,把error_reporting参数改成
error_reporting=E_ALL & ~E_STRICT
这个意思是显示所有除了严格模式的错误,改完之后找到includes目录下的init.php文件进行编辑,查找到以下代码:
@ini_set('display_errors', 1);
替换为:
@ini_set('display_errors', 0);
然后在ECSHOP后台清除缓存。这样includes下的cls_template.php中的代码就可以不用改,而且程序可以正确运行。
- ECSHOP在PHP5.3以上出现构造函数报错的解决方法
- ECSHOP提示Deprecated: preg_replace()报错的解决方法
- 批量设置ECSHOP广告下线时间
- ECshop的/admin/shopinfo.php文件SQL注入漏洞修复方法
- ECshop的/admin/shophelp.php文件SQL注入漏洞修复方法
- ECshop的/admin/comment_manage.php文件SQL注入漏洞修复方法
- ECshop的/includes/lib_insert.php文件SQL注入漏洞修复方法
- ECshop的/admin/affiliate_ck.php文件SQL注入漏洞修复方法
- ECshop批量修改商品详情图片路径中的二级目录地址
- ECshop网站后台管理员密码重置方法
本文标题:《ECSHOP提示Strict Standards: Only variables should be passed by reference in报错的解决方法》
网址:https://zhangwenbao.com/ecshop-strict-standards-only-variables-should-be-passed-by-reference-in.html