如何覆盖 php 文件中的函数



我正在使用一个经常由开发公司更新的模块。

在这个模块的一个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
}

最新更新