与其他性状方法的碰撞
我如何处理同名方法的特征?
trait FooTrait {
public function fooMethod() {
return 'foo method';
}
public function getRow() {
return 'foo row';
}
}
trait TooTrait {
public function tooMethod() {
return 'too method';
}
public function getRow() {
return 'too row';
}
}
class Boo
{
use FooTrait;
use TooTrait;
public function booMethod() {
return $this->fooMethod();
}
}
错误
致命错误:尚未应用 Trait 方法 getRow,因为在 Boo 上与其他特质方法发生冲突...
我该怎么办?
而且,使用两个相同的方法名称,我如何从中获取该方法?trait FooTrait
$a = new Boo;
var_dump($a->getRow()); // Fatal error: Call to undefined method Boo::getRow() in...
编辑:
class Boo
{
use FooTrait, TooTrait {
FooTrait::getRow insteadof TooTrait;
}
public function booMethod() {
return $this->fooMethod();
}
}
如果我也想从via获取方法怎么办?可能吗?getRow
TooTrait
Boo