【PHP高级特性】代码复用Trait
自 PHP 5.4.0 起,实现了单继承语言PHP代码复用的一个方法,称为 traits。
trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的class类中复用方法。
trait和class类相似,但trait不能通过它自身来实例化,只能用use来引入到class类中来使用其方法。它为传统继承增加了水平特性的组合。
示例:
<?php trait Hello{ publicfunction sayHello(){ echo 'Hello '; } } trait World{ publicfunction sayWorld(){ echo 'World'; } } classMyHelloWorld{ useHello,World; //使用多个trait,用逗号分隔 publicfunction sayExclamationMark(){ echo '!'; } } $o =newMyHelloWorld(); $o->sayHello(); //使用traint Hello中定义的方法 $o->sayWorld(); //使用traint World中定义的方法 $o->sayExclamationMark(); //使用本类中的方法 ?>
输出:
HelloWorld!注意:
1、优先级:从基类继承的成员会被 trait 插入的成员所覆盖。优先顺序是来自当前类的成员覆盖了 trait 的方法,而 trait 则覆盖了被继承的方法。
2、正如 class 能够使用 trait 一样,其它 trait 也能够使用 trait。在 trait 定义时通过使用一个或多个 trait,能够组合其它 trait 中的部分或全部成员。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号