trait TestTrait
{
public function matches()
{
}
}
class TestClassOne
{
public static function matches()
{
}
}
class TestClassTwo extends TestClassOne
{
use TestTrait {
matches as alternativeMatches;
}
public function run()
{
$this->alternativeMatches();
}
}
当调用方法运行时如上所示,它将返回错误:致命错误:无法使静态方法匹配非静态
这些课程不是我写的,也不是我在其他多个地方使用过的特质。如果我必须重写这个特性,或者必须重新制作一个特性,只是为了让它适用于这个类。
有没有办法让它发挥作用?
干杯
答案 0 :(得分:0)
嗯,我做了一些黑客攻击...但我不喜欢它... 有人有更好的方法吗?
class TestClassTwo extends TestClassOne
{
use TestTrait {
matches as alternativeMatches;
}
public function run()
{
$this->alternativeMatches();
}
public static function matches()
{
parent::matches();
}
}