PHP版本導致ECShop出錯的原因分析

ECShop是一款B2C獨立網店系統,比較適合企業及個人站長快速電商網站,由於是開源程序,因而備受青睞。

目前,有很多站長都有使用美國虛擬主機在搭建ECShop電商網站。值得一提的是,如果主機空間的PHP版本過低或過高的話,可能會導致ECShop程序出現錯誤。爲此,這裏就爲大家列出幾種常見的錯誤以及相應的解決方法。

錯誤、未聲明靜態

錯誤提示:Stict Stndds: Non-sttic method cls_imge::gd_esion() should not be clled stticlly

解決方法:將

etun cls_imge::gd_esion();

替換爲

$p = new cls_imge();

etun $p->gd_esion();

錯誤2、變量未通過引用傳遞

錯誤提示:Stict Stndds: Only ibles should be pssed by efeence

解決方法:將

$tg_sel = y_shift(explode(̺ ̺, $tg));

替換爲

$tg_ = explode(̺ ̺, $tg);

$tg_sel = y_shift($tg_);

錯誤3、函數已經過時

錯誤提示:Depected: peg_eplce(): The /e modifie is depected, use peg_eplce_cllbck insted in

解決方法:將

etun peg_eplce(“/{([^}{

]*)}/e̶, “$this->sel ect(̺\̻);̶, $souce);

替換爲

etun peg_eplce_cllbck (“/{([^}{

]*)}/̶, function($) { etun $this->sel ect($); }, $souce);

錯誤4、構造類函數順序錯誤

錯誤提示:Stict Stndds: Redefining ledy defined constucto fo clss pypl

解決方法:PHP類有兩種構造函數,一種是同名類函數,一種是____constuct()。從PHP5.4版本開始,對這兩個函數的順序都有着規定,必須是____constuct() 在前,同名函數在後面,例如:

function __constuct()

{

$this->pypl();

}

function pypl()

{

}

錯誤5、stticmktime()方法不帶參數被調用

錯誤提示:mktime(): You should be using the time() function insted

解決方法:將

$uth = mktime();

替換爲

$uth = time();

錯誤6、語法錯誤

錯誤提示:Pse eo: syntx eo, unexpected ̺;̻

解決方法:自行檢查語法,看看是否是缺少“;”,或者echo有沒有輸出值。

以上就是在使用美國或其它國外虛擬主機時,由於PHP版本可能導致的ECShop程序錯誤,大家可以按照上述方法進行設置。另外,在選購主機空間之前,最好是諮詢主機該主機所支持的PHP版本是多少,看看是否與你ECShop程序所要求的PHP版本相兼容。

另外,HostEse美國主機支持包括PHP4.4~PHP5.6在內的多種版本,而且可以自行進行切換,非常方便。因此,它對ECShop以及其它開源程序的安裝、運行都是完美支持的,實用性非常高,感興趣的朋友可以瞭解下。