A-A+
Strict Standards: Only variables should be passed by reference in
ecshop出现的错误信息:Strict Standards: Only variables should be passed by reference in D:\wamp\ecshop\includes\cls_template.php on line 406
解决办法 1 :5.3以上版本的问题,应该也和配置有关,只要406行把这一句拆成两句就没有问题了
$tag_sel = array_shift(explode(' ', $tag)); 改成:
$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);
因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值
解决办法 2 :或则可以加上容错语句:error_reporting = E_ALL | E_STRICT
谢谢,用了不错,解决了
不要附加太多的东西,有时候更美好。
用不到PHP的说
貌似没有定义严格的变量造成的错误吧。
没有对语句进行严格标准造成的错误。
PHP 版本过高造成的,我的PHP版本是5.4.19,也出现了这个问题,PHP5.3以上默认只能传递具体的变量,而不能通过函数返回值传递,所以只能重新赋值了,也就是上面博主说的情况。
这跟PHP的配置有关,现在最新版的ecshop中已经没有这个错误了,但如果我们用了老版的PHP可能就会出现这个,直接屏蔽掉错误就行。
回头研究一下最新版的 Ecshop。
ecshop 只更新补丁了,已经N久没出最新版的了。
直接容错语句比较省劲,error_reporting 看来无所不能啊,不管什么错句直接屏蔽,但最好不要严重的错误,否则就完了。
error_reporting 比较给力,有时候在调试 PHP 的时候,实在找不到错误在哪里就直接 error_reporting 了,当然是在网站正常运行的前提下。
虽然使用 error_reporting 可以屏蔽掉错误,但拿PHP规范来讲的话,最好还是把实际问题解决了好。
话说。。。我搜错误搜到你这来了。。。好家伙