php使用traits实现代码复用、多继承

来源:互联网 发布:淘宝秒杀最准的时间 编辑:程序博客网 时间:2024/05/16 02:03
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(); 
/*  
结果:  
人类行走  
男人吃饭  
男人说话  
小孩唱歌  
*/  
0 0