Trait的使用

在PHP中代码只能单继承,为了实现类代码的复用因此实现了trait,trait类与普通class不同它自身无法实例化,只能通过use在class中引用trait,然后这个类就能使用trait中的方法。

trait的基本使用
使用中遇到的一些问题
你想自定义自己类中方法的权限而不是使用原来trait的方法权限

使用as来修改权限

类中的方法发生冲突

类中的方法有优先级: 本类中的方法 > trait的方法 > 继承的类中的方法

  • 如果同名的话优先级高的会覆盖优先级低的,因此如果需要使用需要修改方法的名称
    同样使用as,但如果也想修改权限则权限放在要修改的名称前面
权限和方法名修改
  • 两个类中的方法名相同,使用其中一个不使用另外一个
    使用B中的smallTalk方法替换A中的smallTalk方法, 使用A的bigTalk替换B中的bigTalk
方法替换

多使用Trait来实现代码复用, 能实现更为完善的面向对象的代码。

你可能感兴趣的:(Trait的使用)