解决ECShop出现Strict Standards: Only variables should be passed by reference in问题

 有网友在使用ECShop出现Strict Standards: Only variables should be passed by reference in错误了,那么碰到这个问题我们要怎么来解决,具体的操作细节如下文解决。

今天开始研究ECShop,在安装完成的时候发现首页顶部、左侧和底部出现:XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

Strict Standards: Only variables should be passed by reference in F:\wamp\www\ecshop\upload\includes\cls_template.php on line 418XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

的报错信息。XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

第一种解决方法是杀到cls_template.php文件中发现下面这段代码:XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

$tag_sel = array_shift(explode(' ', $tag));XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

忘记说了,我的PHP版本是5.4.19,PHP5.3以上默认只能传递具体的变量,而不能通过函数返回值传递,所以这段代码中的explode就得移出来重新赋值了:XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

$tagArr = explode(' ', $tag);XiM迪尔课堂自学网---官网 (迪尔掌上课堂)
$tag_sel = array_shift($tagArr);XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

这样之后顶部的报错没掉了,左侧和底部的报错还需要去ecshop的后台点击清除缓存才能去除。XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

第二种解决方法就是去php.ini里面修改error_reporting,改成error_reporting=E_ALL & ~E_STRICT,这个意思是显示所有除了严格模式的错误。XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

改完了之后需要到 ecshop\upload\includes\init.php中,将第45行的:XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

@ini_set('display_errors',1);XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

改成XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

@ini_set('display_errors',0);XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

这样ecshop\upload\includes\cls_template.php中的代码可以不用改,而且程序可以正确运行,缓存记得去后台清除下。XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

 
 
XiM迪尔课堂自学网---官网 (迪尔掌上课堂)

扫一扫手机访问