请在下面阅读我的代码
class A
{
public function echo($key)
{
if ($key === 1) return 'one';
return 'default';
}
}
trait X
{
public function echo ($key)
{
if ($key === 2) return 'two';
return parent::echo($key);
}
}
trait Y
{
public function echo ($key)
{
if ($key === 3) return 'three';
return parent::echo($key);
}
}
class B extends A
{
use X, Y {
X::echo as echoX;
Y::echo as echoY;
}
public function echo ($key)
{
if ($this->echoX($key) !== parent::echo($key)) {
return $this->echoX($key);
}
return $this->echoY($key);
}
}
$object = new B();
echo $object->echo(2);
查看类B中的方法echo
有什么可以简化这种行为的吗?
注意: 目前只有2个具有相同方法的特征, 如果有10个具有相同方法的特征,是否必须使用9次?
谢谢