本地PHP環境PHP5.4,安裝ecshop2.7.3后,很多地方會報如下的錯。
Redefining already defined constructor for class XXX
檢查代碼可以發現,對應的位置是某個類的構造函數,具體寫法如下:
- /**
- * 構造函數
- *
- * @access public
- * @param
- *
- * @return void
- */
- function alipay()
- {
- }
- function __construct()
- {
- $this->alipay();
- }
其中使用和類名相同點函數名作為構造函數是php4時代的寫法,php5時代的構造函數是 __construct(),ecshop為了兼容老版本的php,所以采用了上面的寫法。
但是從php5.4開始,對于這樣的兩種寫法同時出現的情況,要求必須__construct()在前,同名函數在后,所以只需要對調兩個函數的位置即可。
新聞熱點
疑難解答