PHP不可以多重继承,即PHP类一次只能继承一个。

可以使用trait解决PHP继承不了多个类的问题。

trait例子

<?php
trait  A{
    function eat(){
        echo "eat";
    }
}
trait  B{
    function say(){
        echo "say";
    }
}
class C{
    use A{
        A::eat as public eat1;//将A类的eat方法作为私有方法eat1,别名要不一样
    }
    use B{
        B::say as public say1;//将B类的say方法作为私有方法say1,别名要不一样
    }
}

$c = new C();
$c->eat1();
$c->say1();


?>

测试一下

上面的例子中,类C虽然没有extends多个类A和B,但是使用 trait 关键字可以实现继承多个的效果。