我可以扩展一个类在PHP中使用多于一个类吗?

如果我有几个类的功能,我需要,但想要分开存储组织,我可以扩展一个类有两个?

即类a扩展b扩展c

编辑:我知道如何扩展类一次一个,但我正在寻找一个方法来立即扩展一个类使用多个基类 – AFAIK你不能这样做在PHP,但应该有办法解决它,而不求助于类c扩展b,类b扩展a

回答您的编辑:

如果你真的想假冒多重继承,你可以使用魔术函数__call()。

这是丑陋的,虽然它工作从类A用户的角度来看:

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”

http://stackoverflow.com/questions/356128/can-i-extend-a-class-using-more-than-1-class-in-php

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:我可以扩展一个类在PHP中使用多于一个类吗?