Çoklu Miras PHP sınıf düzeyinde izin verilir?
Çoklu kalıtım (olmak nasıl mutabık) Henüz PHP çözülmüş değil Diamond Problem, muzdarip. Bu durumda, there is no multiple inheritance in PHP.
BaseClass
/\
/ \
ClassA ClassB
\ /
\/
ClassC
Eğer her ikisi ClassA
ve ClassB
kendi yöntemini tarif foo()
, hangisini aramak istiyorum ClassC
?
Yatay yeniden kullanım sonrasında ise - - Decorator içine bakmak veya {[Kullanmadan object composition veya interfaces (ki izin veririm çoklu kalıtım) ya da teşvik edilmektedir (3)]} desen kadar biz Traits (veya Grafts veya ne olursa olsun o çağrılacaktır) var.
Bazı Referans:
Sen yöntemi ve özelliği heyet kullanarak taklit edebilir, ancak is_a()
veya instanceof
ile çalışmaz:
class A extends B
{
public function __construct($otherParent)
{
$this->otherParent = $otherParent;
}
public function __call($method, $args)
{
$method = array($this->otherParent, $method);
return call_user_func_array($method, $args);
}
}