请问出现Strict Standards: Redefining already defined constructor

2016-07-07 15:11 来源:www.chinab4c.com 作者:ecshop专家

我在本地测试的时候在安装就在页面顶部


Strict Standards: Redefining already defined constructor



详细出错提示如上图。

我的环境是
appserv
winXp sp3

请帮忙解决一下。

回答:
环境没做好吧?

环境默认的。别的程序都可以正常使用。

ecshop的源文件也是刚刚才下载的,什么都没动过。

构造函数问题,你php是什么版本?

4# Info

回大人的话,小人的PHP是6.0的。

你用2进制上传试下。如果还出现,是空间没有设置好,可以联系空间商帮忙下

问题同楼主,求解
http://www.sdhrtech.com/sdhr_shop

我也遇到同样问题,求解答。难道遇到这个问题的就只有几个人吗?为什么百度google出来的结果这么少?



1)、错误原因:
PHP 类,有两种构造函数,一种是跟类同名的函数,一种是 __c**truct()。从PHP5.4开始,对这两个函数出现的顺序做了最严格的定义,必须是 __c**truct() 在前,同名函数在后


2)、
解决方法:
调换一下两个函数的前后位置即可。
以 includes/modules/payment/alipay.php为例:
将下面这两个函数的位置互换一下就OK了,__c**truct()在前,alipay()在后
  1. function alipay() {
  2. }

  3. function __c**truct()
  4. {
  5. $this->alipay();
  6. }
复制代码


3)、
ECSHOP的很多类文件 都存在这个问题,都需要修改掉。



谢谢EC至尊。
原来在我的后台支付方式页面中出现了大量这样的错误提示,我按照您说的修改了,确实消除了这个错误。

1)、错误原因:
PHP 类,有两种构造函数,一种是跟类同名的函数,一种是 __c**truct()。从PHP5.4开始,对 ...
zhangyh 发表于 2013-6-10 09:37

支持下了,这种方法肯定解决问题了

9楼解决方案相当完整
  1. function __c**truct()
  2. {
  3. $this->bank();
  4. }

  5. /**
  6. * 构造函数
  7. *
  8. * @accesspublic
  9. * @param
  10. *
  11. * @return void
  12. */
  13. function bank()
  14. {
  15. }
复制代码