trait mytrait1{
public function triatfunction(){
echo 'trait function1';
}
}
trait mytrait2{
public function triatfunction(){
echo 'trait function2';
}
}
class ParentClass{
public function parentfunction(){
echo 'parent function';
}
}
class ChildClass extends ParentClass{
use mytrait1,mytrait2{
mytrait1::triatfunction as triatfunction1;
mytrait2::triatfunction as triatfunction2;
}
public function childfunction(){
echo 'child function';
}
}
$obj = new ChildClass();
$obj->parentfunction();
echo '
';
$obj->childfunction();
echo '
';
$obj->triatfunction1();
echo '
';
$obj->triatfunction2();
但是如果改变
use mytrait1,mytrait2{
mytrait1::triatfunction as triatfunction1;
mytrait2::triatfunction as triatfunction2;
}
use mytrait1,mytrait2{
mytrait1::triatfunction insteadof mytrait2;
mytrait2::triatfunction as triatfunction2;
}
和使用
$obj->triatfunction();
echo '
';
$obj->triatfunction2();
它起作用了。
现在我有三个具有相同名称的函数的特性。
我怎样才能在我的功能的所有不同特征中使用这三个功能呢?
trait mytrait1{
public function triatfunction(){
echo 'trait function1';
}
}
trait mytrait2{
public function triatfunction(){
echo 'trait function2';
}
}
trait mytrait3{
public function triatfunction(){
echo 'trait function3';
}
}
class ParentClass{
public function parentfunction(){
echo 'parent function';
}
}
class ChildClass extends ParentClass{
use mytrait1,mytrait2,mytrait3{
mytrait1::triatfunction insteadof mytrait2;
mytrait2::triatfunction as traitfunction1;
mytrait3::triatfunction as triatfunction2;
}
public function childfunction(){
echo 'child function';
}
}
$obj = new ChildClass();
$obj->parentfunction();
echo '
';
$obj->childfunction();
echo '
';
$obj->triatfunction();
echo '
';
$obj->triatfunction1();
echo '
';
$obj->triatfunction2();