如果我有几个类,它们都有我需要的功能,但我想单独存储以便于组织,那么我可以扩展一个类,使之同时具有这两个功能吗?
即class a extends b extends c
编辑:我知道如何一次扩展一个类,但我正在寻找一种使用多个基类立即扩展类的方法——好吧,在PHP中你不能这么做,但应该有办法绕过它,而不必求助于class c extends b
class b extends a
如果我有几个类,它们都有我需要的功能,但我想单独存储以便于组织,那么我可以扩展一个类,使之同时具有这两个功能吗?
即class a extends b extends c
编辑:我知道如何一次扩展一个类,但我正在寻找一种使用多个基类立即扩展类的方法——好吧,在PHP中你不能这么做,但应该有办法绕过它,而不必求助于class c extends b
class b extends a
如果你真的想在PHP5.3中伪造多重继承,你可以使用神奇的函数_call().
这很难看,尽管它从A级用户的Angular 来看是可行的:
class B {
public function method_from_b($s) {
echo $s;
}
}
class C {
public function method_from_c($s) {
echo $s;
}
}
class A extends B
{
private $c;
public function __construct()
{
$this->c = new C;
}
// fake "extends C" using magic function
public function __call($method, $args)
{
$this->c->$method($args[0]);
}
}
$a = new A;
$a->method_from_b("abc");
$a->method_from_c("def");
打印"ABCDEF"