您的位置:首页 > 运维架构

ECShop出现Strict Standards:…

2015-07-18 11:44 441 查看
今天开始研究ECShop,在安装完成的时候发现首页顶部、左侧和底部出现:

Strict Standards: Only variables should
be passed by reference in
F:\wamp\www\ecshop\upload\includes\cls_template.php on line
418

的报错信息。

第一种解决方法是杀到cls_template.php文件中发现下面这段代码:
1
$tag_sel
=
array_shift
(
explode
(
''
,
$tag
));


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

?
1

2
$tagArr
=
explode
(
'',
$tag
);

$tag_sel

=
array_shift
(
$tagArr
);

这样之后顶部的报错没掉了,左侧和底部的报错还需要去ecshop的后台点击清除缓存才能去除。


第二种解决方法
就是去php.ini里面修改error_reporting,改成error_reporting=E_ALL
& ~E_STRICT,这个意思是显示所有除了严格模式的错误。

改完了之后需要到 ecshop\upload\includes\init.php中,将第45行的:

1
@
ini_set
(
'display_errors'
,       1);


改成:

1
@
ini_set
(
'display_errors'
,       0);


这样ecshop\upload\includes\cls_template.php中的代码可以不用改,而且程序可以正确运行,缓存记得去后台清除下。

上面两种方法,我觉得第一种方法比较好,治标要治本,第二种方法有点像是hack过去,而且错误输出关闭对开发本身一件不好的事情,不过如果你在开发环境开启了所有的报错,正式环境关闭所有的报错这样也是没有什么问题的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: