使用与 Class 相同方法的特征,一个静态

Trait with same method as Class , one Static

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();
    }
}

如上所示调用方法 运行 时会 return 错误:致命错误:无法使静态方法 匹配 非静态

classes 不是我写的,我在其他多个地方使用过的特征。如果我必须重写 trait .. 或者必须创建一个新的,只是为了让它与这个 class.

一起工作,那就太糟糕了

有没有办法让它工作?

干杯

好吧,我让它工作了一点……但我不喜欢它…… 有人有更好的方法吗?

class TestClassTwo extends TestClassOne
    {
        use TestTrait {
            matches as alternativeMatches;
        }

        public function run()
        {
            $this->alternativeMatches();
        }

         public static function matches()
        {
            parent::matches();
        }

    }