php–Trait 特性及作用

2022-10-11 22:12:23 165 0
魁首哥

php5.4起,php实现了一种代码复用的方法,称为trait

trait是为PHP单继承准备的一种代码复用机制, trait为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用method。

从基类(父类)继承的成员会被trait插入的成员所覆盖,而trait中的成员又会被当前类成员覆盖。

使用use关键词使用trait,多个trait通过逗号分隔。如果两个trait都插入了一个同名方法,如果没有明确解决同名成员方法的冲突,程序将会长生一个致命错误。为了解决多个trait在同一个类中的命名冲突,需要使用insteadof操作符来明确指定使用冲突方法中的哪一个。也可以使用as操作符为某个方法引入别名,使用as还可以用来调整方法的访问控制(public/ protected / private )。

trait也能够使用trait,在trait定义是通过使用一个或多个trait,能够组合其他trait中的部分或全部成员

为了对使用的类增加约束,trait支持抽象方法的使用

traits可以被静态成员静态方法定义

上面就是些 Trait 比较基本的使用了。这里总结下注意的几点:
1.Trait 会覆盖调用类继承的父类方法,但也会被当前类所覆盖
2.Trait 无法如 Class 一样使用 new 实例化
3.单个 Trait 可由多个 Trait 组成
4.在单个 Class 中,可以使用多个 Trait
5.Trait 支持修饰词(modifiers),例如 final、 static abstract
6.我们能使用 insteadof 以及 as 操作符解决 Trait 之间的冲突
7.Trait中不区分修饰符,即可以操作Trait中的public protected private级别的属性和方法,这个extends继承有所不同

收藏
分享
海报
0 条评论
165
上一篇:「漏洞通告」PHP远程代码执行漏洞(CVE-2019-11043) 下一篇:php加密技术原理浅析(二):对称加密

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码