我必须将一个网站(自定义编写(不是我)),所以只是更新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