宽容他人,放过自己。

php中trait的使用__比较麻烦

Posted on By anchoriteFili

<?php 

/*
 * 从基类继承的成员被插入的SayWorld Trait中MyHelloWorld方法覆盖。其行为MyHelloWorld类中定义的方法
 * 一致。优先顺序是当前类中的方法会覆盖Trait方法,而trait方法又覆盖了基类中的方法。
 * */

class Base {
    public function  sayHello() {
        echo 'hello    ';
    }
}

trait SayWorld { // trait 覆盖掉基类方法sayHello 此时Base中的sayHello为 hello world
    public function sayHello() {
        parent::sayHello(); // 基类继承的成员插入进来
        echo 'world';
    }
}

class MyHelloWorld extends Base {
    use SayWorld; // 用SayWorld中的sayHello
}

$o = new MyHelloWorld();
$o->sayHello();

?>