PHP更新5.3.2到5.4.2,方法重新定义

时间:2012-12-07 10:28:13

标签: php zend-framework

我有一个使用Zend FrameWork在PHP 5.3.2中运行的大型Web应用程序,并使用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)使导入功能起作用的最不危险的解决方法是什么?

1 个答案:

答案 0 :(得分:1)

我建议在类中添加一个新方法,例如getWorkFlowDataWithFlags($id, $flags)并将getWorkFlowData中的功能重构到其中,然后更改getWorkFlowData只调用getWorkFlowDataWithFlags默认标志为0