标签:UNC ext 扩展 extends repo cti hello 实现 func
之前一直沒有讲到trait,在此我不得不提一下trait中的优先级:
在trait继承中,优先顺序依次是:来自当前类的成员覆盖了 trait 的方法,而 trait 则覆盖了被继承的方法。
For example:
    class A{
    public function sayHello(){
    echo "A";
    }
    }
    
    trait B{
    public function sayHello(){
       parent::sayHello();
    echo "B";
    }
    }
    
    class C extends A{
    use B;
    }
    
    $c=new C();
    $c->sayHello();
上述打印结果是:AB
    class A{
    public function sayHello(){
    echo "A";
    }
    }
    
    trait B{
    public function sayHello(){
       parent::sayHello();
    echo "B";
    }
    }
    
    class C extends A{
    use B;
    public function sayHello(){
    echo "C";
    }
    }
    
    $c=new C();
    $c->sayHello();
此打印结果为:C
trait 一般写不适合或不方便写在父类,子类又需要重复实现或使用的方法,如Model,Repositories层,或者某横向扩展业务的公共方法
标签:UNC ext 扩展 extends repo cti hello 实现 func
原文地址:https://www.cnblogs.com/cxscode/p/9573918.html