@Franck tarafından şu anda kabul edilen cevap işe yarayacak, ancak aslında çoklu miras değil, kapsam dışında tanımlanan sınıfın alt örneği, ayrıca __call()
kısayol var - $this->childInstance->method(args)
"genişletilmiş" sınıfta ExternalClass sınıf yöntemine ihtiyacınız olan her yerde kullanmayı düşünün .
Kesin cevap
Hayır , extends
anahtar kelime kılavuzunun dediği gibi, gerçekten değil, sırasıyla yapamazsınız :
Genişletilmiş sınıf her zaman tek bir temel sınıfa bağlıdır, yani çoklu kalıtım desteklenmez.
Gerçek cevap
Ancak @adam'ın doğru bir şekilde önerdiği gibi, bu, birden çok hiyerarşik kalıtım kullanmanızı yasaklamaz.
Bir sınıfı diğeriyle diğerini diğeriyle genişletebilirsiniz ...
Bu konuda oldukça basit bir örnek:
class firstInheritance{}
class secondInheritance extends firstInheritance{}
class someFinalClass extends secondInheritance{}
//...and so on...
Önemli Not
Fark etmiş olabileceğiniz gibi , yalnızca sürece dahil olan tüm sınıflar üzerinde kontrolünüz varsa, hiyerarşi ile çoklu (2+) dürüstlük yapabilirsiniz - yani, bu çözümü örneğin yerleşik sınıflarla veya sınıflarla basitçe düzenleyemez - bunu yapmak istiyorsanız, @Franck çözümü - alt örnekleri ile kalırsınız.
... Ve son olarak bazı çıktılarla örnek:
class A{
function a_hi(){
echo "I am a of A".PHP_EOL."<br>".PHP_EOL;
}
}
class B extends A{
function b_hi(){
echo "I am b of B".PHP_EOL."<br>".PHP_EOL;
}
}
class C extends B{
function c_hi(){
echo "I am c of C".PHP_EOL."<br>".PHP_EOL;
}
}
$myTestInstance = new C();
$myTestInstance->a_hi();
$myTestInstance->b_hi();
$myTestInstance->c_hi();
Hangi çıktılar
I am a of A
I am b of B
I am c of C