php只能继承一个父类,php5.4后新增traits实现代码复用机制变向达到多继承
1、trait和类相似,但不能被实例化,无需继承,只需要在类中使用关键词use引入即可,可引入多个traits,用','隔开
2、trait会覆盖继承的方法,当前类会覆盖trait方法
<?php
class People{
public function walk(){
echo "人类行走<br/>";
}
function say(){
echo "人类说话<br/>";
}
}
trait Man{
public function eat(){
echo "男人吃饭<br/>";
}
function say(){
echo "男人说话<br/>";
}
function sing(){
echo "男人唱歌<br/>";
}
}
class Child extends People{
use Man;
function sing(){
echo "小孩唱歌<br/>";
}
}
$obj=new Child();
$obj->walk();
$obj->eat();
$obj->say();
$obj->sing();
/*
结果:
人类行走
男人吃饭
男人说话
小孩唱歌
*/