概述
在PHP中有一种代码复用的技术, 因为单继承的问题, 有些公共方法无法在父类中写出, 而 Trait可以应对这种情况, 它可以定义一些复用的方法, 然后在你需要使用的类中将其引入即可....刚开始的时候给我的感觉就是将trait代码块直接拿到类中的意思, 但后来我发现, 我太天真了.
PHP中的Trait用法:
?...引入方法与现有方法重名时, 会优先调用类中已定义的方法, 其优先级顺序为: 当前类方法>trait方法>父类方法
3. trait 中可以定义抽象方法, 语法与抽象类相同
?...4.trait 中可以定义字段, 语法与类相同
?
5. 可以定义静态方法与静态字段
?
6. 可以进行方法权限的控制
?
7....另外, 在trait 代码块中还可以引入其他trait代码块, 语法与类中引入相同:
?
总结
至此, 我发现了一个新的问题, 这个 trait 与抽象类有什么区别?