研究一下Traits
据说,为了弥补php单继承的不足,从PHP5.4起,引入了traits特性。使得php可以通过trait实现多重继承。
举例:
还可以像这样,同时引入多个Traits
如果命名冲突了呢?
使用Trait实现单例模式
在类中使用该trait
总结:
- 可以使用use引入多个Traits
- 如果一个类引入了多个Traits,并且Traits中有同名的方法,在没有明确指定如何解决冲突时会产生一个致命错误,需要使用insteadof操作符来指定使用冲突方法中的哪一个方法,也可以使用as操作符将其中一个冲突方法以另一个名称引入。
- 使用as语法还可以用来调整方法的访问控制权限。
- Traits 和一个类的形为相似,但是不能被实例化。