我使用的是开发公司经常更新的模块。
此模块的一个php文件(cat_product_get.php)中的以下功能:
function getColSettingsAsXML()
此函数内的以下代码:
{
foreach($colSettings[$col]['options'] AS $k => $v)
{
$xml.='<option value="'.str_replace('"','\'',$k).'"><![CDATA['.$v.']]></option>';
}
}
这样的代码导致以下警告: PHP警告:在第317行的../cat_product_get.php中为foreach()提供了无效的参数
第317行如下:
foreach($colSettings[$col]['options'] AS $k => $v)
为解决警告,我添加了以下一行:
if (is_array($colSettings[$col]['options']) || is_object($colSettings[$col]['options']))
{
foreach($colSettings[$col]['options'] AS $k => $v)
{
$xml.='<option value="'.str_replace('"','\'',$k).'"><![CDATA['.$v.']]></option>';
}
}
但是在每次模块更新时,我都必须再次修改cat_product_get.php。
我试图说服开发人员多次在他的代码中添加合适的行。 但是开发人员拒绝这样做。
有没有一种方法可以在某个地方添加一个替代,以避免在每个模块更新时添加行?
我不是开发人员...
在此先感谢您的答复。
帕特里克
答案 0 :(得分:0)
如果该函数只是一个普通函数,则无法在PHP中完成。您不能有重复的函数名称。
如果它是类(又称方法)中的一个函数,则可以扩展该类并重写该函数,然后使用您的类。
class Person
{
public function fixThisCrap()
{
return 'the wrong stuff';
}
// more functions
}
class MyPerson extends Person
{
public function fixThisCrap()
{
return 'the correct stuff';
}
// parent class functions will be available, no need to code
}