当前位置: 首页 > 后端技术 > PHP

PHP-Trait--代码复用的方法

时间:2023-03-30 02:09:14 PHP

大家都知道在PHP中use是用来引入命名空间的,但是use应该写在类外。很多时候在做开发的时候,会发现类里面写了一些uses,类似下面这样:AuthenticatesAndRegistersUsers;classAuthControllerextendsController{useAuthenticatesAndRegistersUsers,ThrottlesLogins;?>对于我这样的小白来说,类里面写的use一直是个谜。看了很久php的文档,弄明白了作用。类内部使用Trait是一种代码重用(trait)的方法,从php5.4开始就有了。它的作用是减少单继承语言的局限性,让开发者可以自由地在不同的层次结构中重用独立类中的方法,避免传统多继承和Mixin类相关的典型问题。Traits类似于类,但不能实例化。几个类之间不需要继承优先级。先看下面的例子:traitandcurrentclasssayHello();?>输出将是:HelloUniverse!特征是HelloWord,当前类是TheWorldIsEnough。从上面的例子可以看出,虽然当前类中使用了trait的HelloWorld类,但是仍然执行了当前类中的sayHello方法。可以看出当前class的优先级高于trait的优先级。参见特征和继承的第二个例子sayHello();?>输出结果将是:World!可见trait的优先级大于inheritance。traits的分析先到这里,以后还会有很多,但是要花很多时间研究,遇到了就一一验证。