我必須將一個網站(自定義編寫(不是我)),所以只是更新CMS不是一個選項)到PHP 5.3服務器。該代碼抱怨::我可以在PHP 5.3中恢復舊的__tostring()行爲嗎?
Fatal error: Method cDate::__tostring() cannot take arguments in ...\lib.datetime.php on line 183
我GOOGLE找出這個問題是因爲「用PHP 5.3的魔術方法__toString()不再接受任何參數」,」 ......實現其__toString()通過接受參數...現在已被棄用,以支持PHP 5.3的新__tostring()。 下面的代碼:
public function __toString($format = 'Y-m-d')
{
// the next is the line #182, the line #183 mentioned in the error message is the closing brace
return date($format, $this->_stamp);
}
有什麼樣一個php.ini參數我可以調整,使該回去上班?
我不是一個PHP開發人員,我也不太願意去研究和修改一些web dev外包公司過去爲我工作的公司編寫的代碼。我的任務是將網站從共享主機提供商移到我管理的專用服務器(我在那裏運行Ubuntu 10.04 LTS服務器),並且我寧願不要降級到PHP 5.2。如果我能夠使用一些配置魔法,它將會很棒。我擔心,如果我修改一個方法,那麼整個事情就會按預期停止工作。
有迫使4兼容性INI參數,但它已被刪除。 – powtac 2011-03-10 14:02:19
通常不直接調用__toString()。它在類中用於決定將對象作爲字符串進行轉換時要執行的操作。所以問題是,你的__toString()方法的目的是什麼? – powtac 2011-03-10 14:05:06
我不認爲在棄用的行爲中堅持是要走的路,也許你應該考慮更新你的代碼,找到完成相同任務的另一種方式。 – Terseus 2011-03-10 14:06:16