关于ECSHOP安装或使用中提示Strict Standards: Non-static method cls_imag

2017-04-14 02:27 来源:www.chinab4c.com 作者:ecshop专家

随着ECSHOP的不断发展,越来越多的人成为了ECSHOP的忠实粉丝。由于每个人的服务器环境和配置都不完全相同,所以ECSHOP也接二连三的爆出了各种各样的错误信息。相信不少新手朋友在ECSHOP安装过程中都碰到过类似下面这样的错误提示吧。Strict Standards: Non-static method cls_image::gd_version() should not be called statically in /....../install/includes/lib_installer.php on line 31
注意: 省略号...... 代表的是ECSHOP安装路径,每个人的都不一样,所以这里用省略号代替了。

而且这种错误不只在安装过程中会出现,安装完后,在ECSHOP使用过程中,
在某些页面也会提示类似下面这样的错误信息,
Strict Standards: Non-static method cls_image::gd_version() should not be called statically in /....../includes/lib_base.php on line 346

这两种错误信息本质是一样的,只是发生在了不同的页面或不同的文件中,所以错误原因和解决方法也是一样的。

错误原因:
使用“::”符号调用PHP类中的方法(函数),其前提是该方法(函数)必须是使用static关键字定义的。
我们打开 include/cls_image.php文件,找到678行左右,
你会发现cls_image类中的函数gd_version() 是没有使用static关键字的,
所以在ECSHOP安装或使用中才会出现上面的错误提示。

解决方案:
知道了错误原因,再解决起来就容易多了。以下两种修改方法,任选其一即可。

第1种方法:
将gd_version()函数声明为静态函数。
打开 include/cls_image.php 文件,大概在678行左右,
将  function gd_version()  改成  static function gd_version()  就行了。
第1种方法很简单,推荐新手使用。

第2种方法:
先创建实例,然后再调用实例上的这些函数。
打开 install/includes/lib_installer.php 文件,定位到第31行左右,将
return cls_image::gd_version();
改为

$cls_zuimoban_image = new cls_image();
return $cls_zuimoban_image->gd_version();
上面修改的是ECSHOP安装过程中出现的错误提示,
这个要在安装ECSHOP之前就修改好了哦,否则你是装不上的哦,
下面我们继续修改ECSHOP使用过程中的错误,修改方法同上,只是修改的文件不同而已。
继续打开 includes/lib_base.php 文件,找到第346行左右。

return cls_image::gd_version();
修改为
$cls_zuimoban_image = new cls_image();
return $cls_zuimoban_image->gd_version();

结尾语:
出现错误不可怕,先要彻底弄清楚错误原因,然后再去修改,
这样你在ECSHOP的学习道路上才会越走越顺,以后再出现类似的错误才能应付自如