1、使用 insteadof 操作符来明确指定使用冲突方法中的哪一个 2、as 操作符可以 为某个方法引入别名
<?php
trait A
{
    public function smallTalk()
    {
        echo 'a';
    }
    public function bigTalk()
    {
        echo 'A';
    }
}
trait B
{
    public function smallTalk()
    {
        echo 'b';
    }
    public function bigTalk()
    {
        echo 'B';
    }
}
class Aliased_Talker
{
    use A, B {
        B::smallTalk insteadof A;  //使用B的smallTalk方法
        A::bigTalk insteadof B; //使用A的bigTalk方法
        B::bigTalk as talk; // talk 来作为 B 的 bigTalk 的别名
    }
}
(new Aliased_Talker())->smallTalk(); //b
(new Aliased_Talker())->bigTalk();  //A
(new  Aliased_Talker())->talk();    //B
                
最新评论