A-A+

includes\cls_template.php on line 418错误

2015年07月08日 PHP开源系统 暂无评论 阅读 10 views 次

今天在测试 ecshop 系统时,又遇到了因版本而出现的问题,具体的问题代码如下所示:

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

ecshop 看来也该升级了,出现的诸多问题都是不兼容 php 高级版本所引起了,夏日博客分析了上面的代码,应该也和配置有关,我们看一下cls_template.php 的 418 行代码如下:

$tag_sel = array_shift(explode(' ', $tag));

我们把这一行代码修改拆分一下,如下所示:

$tag_arr = explode(' ', $tag); $tag_sel = array_shift($tag_arr);

因为 array_shift 的参数是引用传递的,5.3 版本以上的只能传递具体的变量,而不能通过函数返回值,所以就出现了上面的代码,修改后之后,问题解决。

另外一种方法,如果 ecshop 出现的错误兼容代码太多的话,可以直接进行屏蔽错误配置,在 PHP 配置文件 php.ini 中配置如下:

error_reporting = E_ALL | E_STRICT

如果没有配置 PHP.INI 的权限,也可以在 PHP 文件中直接写屏蔽语句,代码如下:

error_reporting(0);

这种方法只是把错误给屏蔽掉了,但实质错误还在,当我们觉得错误并不影响程序的正常运行时,就可以使用这种方法。

标签:

给我留言