首页 > 开发 > PHP > 正文

php提示Redefining already defined constructor for class 错误

2024-05-04 21:50:27
字体:
来源:转载
供稿:网友

本地PHP环境PHP5.4,安装ecshop2.7.3后,很多地方会报如下的错。

Redefining already defined constructor for class XXX

检查代码可以发现,对应的位置是某个类的构造函数,具体写法如下:

  1. /** 
  2.      * 构造函数 
  3.      * 
  4.      * @access  public 
  5.      * @param 
  6.      * 
  7.      * @return void 
  8.      */ 
  9.     function alipay() 
  10.     { 
  11.     } 
  12.  
  13.     function __construct() 
  14.     { 
  15.         $this->alipay(); 
  16.     } 

其中使用和类名相同点函数名作为构造函数是php4时代的写法,php5时代的构造函数是 __construct(),ecshop为了兼容老版本的php,所以采用了上面的写法。

但是从php5.4开始,对于这样的两种写法同时出现的情况,要求必须__construct()在前,同名函数在后,所以只需要对调两个函数的位置即可。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表