PHP的类和对象(七)Trait

  自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 Trait。

  因为PHP是单继承,当你需要多个区别的特性,就不得不去组合多个基类,Trait出现后就避免了这些问题,Trait的优势就是可以随意组合,而且代码清晰。

  

PHP的类和对象(七)Trait

  Trait不仅仅是可复用代码段的集合,应该是一组描述了某个特性的

  属性与方法的集合。优点再于随意组合,耦合性低,可读性高。

  优先顺序是当前类的方法覆盖了 trait 的方法,而Trait 则覆盖了被继承的方法。

  

PHP的类和对象(七)Trait

  通过逗号分隔,在 use 声明列出多个 trait,可以都插入到一个类中。

  如果引入的两个Trait有同名的方法,会产生冲突,可以使用insteadof操作符来指定使用冲突方法的哪一个,也可以使用as将冲突方法起一个别名。

  使用 as 语法还可以用来调整方法的访问控制。但是不会改变原版方法的访问控制。

  

PHP的类和对象(七)Trait

  Trait也可以使用Trait,同时也像类一样可以定义抽象方法,属性,静态属性,静态方法。不过如果Trait定义了一个属性,使用Trait的类中就不能定义同名的属性,也不能修改这个属性。

  其实Trait更像是方法的集合,其内的属性更像是为了其中的方法服务的。

  Traits不是类,不能被实例化。

  Trait也类似于include和require导入文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值