<?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();
?>