La respuesta actualmente aceptada por @Franck funcionará, pero en realidad no es herencia múltiple sino una instancia secundaria de clase definida fuera de alcance, también existe la __call()
taquigrafía: considere usar $this->childInstance->method(args)
cualquier lugar donde necesite el método de clase ExternalClass en clase "extendida".
Respuesta exacta
No, no puedes, respectivamente, no realmente, como dice el manual de extends
palabras clave :
Una clase extendida siempre depende de una sola clase base, es decir, no se admite la herencia múltiple.
Respuesta real
Sin embargo, como @adam sugirió correctamente, esto NO le prohíbe usar herencia jerárquica múltiple.
PUEDES extender una clase, con otra y otra con otra y así sucesivamente ...
Entonces, un ejemplo bastante simple sobre esto sería:
class firstInheritance{}
class secondInheritance extends firstInheritance{}
class someFinalClass extends secondInheritance{}
//...and so on...
Nota IMPORTANTE
Como habrás notado, solo puedes hacer una interacción múltiple (2+) por jerarquía si tienes control sobre todas las clases incluidas en el proceso ; eso significa que no puedes aplicar esta solución, por ejemplo, con clases integradas o con clases que simplemente no puede editar; si desea hacerlo, le queda la solución @Franck: instancias secundarias.
... Y finalmente ejemplo con algo de salida:
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();
Que salidas
I am a of A
I am b of B
I am c of C