php-Trait

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同样可以定义属性。trait 和 calss 7.0之前的版本不可定义相同的属性,7.0之后可定义相同名称的属性,但属性值必须完全相同

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Trait PHP 实现了一种代码复用的方法,称为trait。Trait是类似PHP的单继承语言而准备的一种代码复...
    NoFacePeace阅读 192评论 0 0
  • 今天查看laravel的一些基础实现时,才发现有trait这个关键词,然后就赶紧去官方更新知识,以下是解析trai...
    LeeBoot阅读 225评论 0 1
  • 官方解释 自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait。 Trait...
    钧辉阅读 283评论 0 1
  • trait是什么 trait是为解决php单继承而准备的一种代码复用机制。trait解决了单继承的限制,使开发人员...
    PENG先森_晓宇阅读 1,127评论 0 0
  • 渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
    闷热当乘凉阅读 4,362评论 0 13