我不知道这是否可能,所以我会尽力解释清楚。
我希望有一个父类,可以轻松地通过“插件”子类进行扩展,而这些子类可能存在,也可能不存在。
class Foo {
__construct(){
$this->foo = "this is foo";
}
}
class Bar extends Foo {
function construct(){
parent :: __construct;
}
$this->foo = "foo is now bar";
}
但我不希望每次需要它时都要使用$bar = new Bar来初始化类Bar,因为从类Foo中我不知道可用的子类是什么。理想情况下,我希望每当调用新Foo时子类自动初始化。这是否可能...有没有更好的方法可以使用子类来修改父类的每个实例中的变量?我正在WordPress中工作,所以我认为我可以给类Foo一个动作钩子,任何子类都可以钩入,但我想知道是否有一种自然的PHP方法来实现这一点。
Foo
的调用正在进行中(可能由您或其他已经存在的代码调用),而您基本上希望运行自己的Foo
实现,例如扩展Foo
的Bar
类?您可以自由编辑Foo
本身吗? - Rhys