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

时间:2017-08-09 12:17:11

标签: php static traits

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

当调用方法运行时如上所示,它将返回错误:致命错误:无法使静态方法匹配非静态

这些课程不是我写的,也不是我在其他多个地方使用过的特质。如果我必须重写这个特性,或者必须重新制作一个特性,只是为了让它适用于这个类。

有没有办法让它发挥作用?

干杯

1 个答案:

答案 0 :(得分:0)

嗯,我做了一些黑客攻击...但我不喜欢它... 有人有更好的方法吗?

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

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

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

    }