【发布时间】:2010-09-13 07:32:18
【问题描述】:
有没有什么方法可以在不使用典型继承的情况下重新定义一个类或它的一些方法?例如:
class third_party_library {
function buggy_function() {
return 'bad result';
}
function other_functions(){
return 'blah';
}
}
我可以做什么来替换buggy_function()?显然这是我想做的事
class third_party_library redefines third_party_library{
function buggy_function() {
return 'good result';
}
function other_functions(){
return 'blah';
}
}
这正是我的困境:我更新了一个第三方库,它破坏了我的代码。我不想直接修改库,因为未来的更新可能会再次破坏代码。我正在寻找一种无缝方式来替换类方法。
我发现这个 library 说它可以做到,但我很谨慎,因为它已经 4 岁了。
编辑:
我应该澄清一下,由于框架限制,我无法将类从 third_party_library 重命名为 magical_third_party_library 或其他任何名称。
出于我的目的,是否可以只在类中添加一个函数?我认为您可以在 C# 中使用称为“部分类”的东西来做到这一点。
【问题讨论】:
-
PHP 不支持。您可以扩展该类并重新使用它。这就对了。对不起。
-
你能重命名原来的越野车类吗?将其重命名为 buggy_third_party,然后自己扩展它,为您的班级提供原始名称。
标签: php class methods redefine