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