php中的trait优先级

php中的trait优先级

[blockquote]在trait继承中,优先顺序依次是:来自当前类的成员覆盖了 trait 的方法,而 trait 则覆盖了被继承的方法[/blockquote]

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 

发表评论

邮箱地址不会被公开。 必填项已用*标注