我正在使用一个经常由开发公司更新的模块。
在这个模块的一个php文件(cat_product_get.php(中是下面的函数:
function getColSettingsAsXML()
此函数内部是以下代码:
{
foreach($colSettings[$col]['options'] AS $k => $v)
{
$xml.='<option value="'.str_replace('"',''',$k).'"><![CDATA['.$v.']]></option>';
}
}
此类代码会导致以下警告: PHP 警告:为 .. 中的 foreach(( 提供的参数无效。/cat_product_get.php 在第 317 行
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。
我多次试图说服开发人员在他的代码中添加合适的行。 但开发商拒绝这样做。
有没有办法在某处添加覆盖以避免每次模块更新时添加行?
我不是开发人员...
我提前感谢您的任何答复。
帕特里克
如果函数只是一个普通函数,那么它就不能在 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
}