本地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()在前,同名函数在后,所以只需要对调两个函数的位置即可。