Life PHP 核心特性 - Trait( 二 )

这时候如果想要保留 A 的 foo 方法,可以用 as 定义别名来进行调用 。注意,起别名仅仅代表可以用别名来调用该方法,仍然需要用 insteadof 处理冲突
class Bar {use A, B {B::foo insteadof A;// 用 B 的 foo 方法来代替 AA::foo as aFoo; // A 的foo 方法用 aFoo 来调用}}$bar = new Bar();echo $bar->aFoo(); // A fooas 关键字还可以用来更改方法法的访问控制
<?phpTrait A {public function foo(){return "A foo";}}class Bar {use A {A::foo as private;}}$bar = new Bar();echo $bar->foo(); // Fatal error: Uncaught Error: Call to private method Bar::foo()这两者可以结合起来用,这时候原有方法的访问控制就不会受到影响
<?phpTrait A {public function foo(){return "A foo";}}class Bar {use A {A::foo as private aFoo;}}$bar = new Bar();echo $bar->foo(); // A foo,照常调用echo $bar->aFoo(); // 被设置成私有方法,因此报错 。Fatal error: Uncaught Error: Call to private method关注我吧,每日不断更新内容!!!

【Life PHP 核心特性 - Trait】


推荐阅读