1
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();
}
}
當調用就像上面說的,將返回錯誤運行的方法:致命錯誤:不能讓匹配非靜態特質與相同的方法類,一個靜態
的類不被寫入靜態方法由我和我在其他多個地方使用的特質。如果我必須重寫這個特性,或者不得不製作一個新的特性,只是爲了讓它與這個類共同工作,那該死的。
有沒有辦法讓它工作?
乾杯
我認爲你應該添加你的更新作爲答案,也接受它。如果有人找到了更好的解決方案,你仍然可以在以後改變,但在此之前,這可能和未來的訪問者一樣好。 – Yoshi
@Yoshi ..我會這樣做,謝謝你的回答。 –
從您發佈的小代碼中,troublemaker是'TestClassOne :: matches()'。你有什麼好的理由讓它變成靜態的嗎? – axiac