在没有类型声明的已实现方法上键入声明

时间:2016-09-16 19:22:07

标签: php php-7

我有这样的界面:

interface A {
    static function from($object): self;
}

在实现接口的类中:

class B implements A {
    static function from(\C $object): self{ // This is highlighted as an error
        return new self();
    }
}

当接口未声明类型时,我不能声明类型吗?

1 个答案:

答案 0 :(得分:2)

  

当接口未声明类型时,我不能声明类型吗?

简而言之:不。

根据interfaces的文档(我觉得很清楚):

  

实现接口的类必须使用与接口中定义的完全相同的方法签名。不这样做会导致致命的错误。

如果您提供了更多有关您认为需要这样做的详细信息,我们或许可以提供更有帮助的答案,但您只是问一个是/否问题,答案就是 - 正如我所说 - “无”。