我有一个大型 Web 应用程序,它使用 Zend FrameWork 在 PHP 5.3.2 中工作,并被迁移到使用 PHP 5.4.2 的新服务器上。其中大部分仍然有效,但有一小部分(我们称之为“导入”)会给出错误:
RptSchdlMdfctnBO::getWorkFlowData() 的声明应与 WorkFlowBaseBO::getWorkFlowData($Id) 兼容,文件 /www/vrs/vrs/application/models/wrkflows/RptSchdlMdfctnBO.php, line79
发生的情况是有这个类 RptSchdlMdfctnBO,它有一个空方法 getWorkFlowData($Id),它在许多地方用相同的参数重新定义。但是在导入部分,这个方法是用两个参数重新定义的,然后总是用两个参数调用它;显然,这在 PHP 5.4.2 中是不被接受的。我试图更改方法的定义以接受第二个可选参数,但这并没有改变任何东西:
public function getWorkFlowData($Id,$Flags=0)
两个问题:1)您能否将我链接到解释 PHP 中这种行为变化的地方?2)让导入功能工作的最危险的解决方法是什么?