1

我有一个大型 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)让导入功能工作的最危险的解决方法是什么?

4

1 回答 1

1

我建议向该类添加一个新方法,例如getWorkFlowDataWithFlags($id, $flags)并将功能重构getWorkFlowData到其中,并更改它getWorkFlowData只需getWorkFlowDataWithFlags使用默认标志 ​​0调用

于 2012-12-07T11:16:34.053 回答