问题
The following code:
trait T {
function foo() {}
}
class C {
use T { T::foo as bar; }
use T { T::foo as baz; }
}
Produces the following error:
Trait method bar has not been applied, because there are collisions with other trait methods on C
Is it possible to use a trait twice in a class?
回答1:
To "import" a method defined in a trait multiple times with different names do this:
class C {
use T {
foo as bar;
foo as baz;
}
}
回答2:
Yes, you can use a trait twice:
trait T {
function foo() {}
}
class C {
use T { T::foo as bar; T::foo as baz; }
}
来源:https://stackoverflow.com/questions/13582061/how-to-use-a-trait-several-times-in-a-class