2013-09-30 18 views
0

在php中,我可以使用比指定更嚴格的函數簽名的接口的實現嗎?更加嚴格的簽名的PHP接口

例如:

interface iChangeHandler{ 
    public function update($new, $old); 
    } 

class NoteChangeHandler implements iChangeHandler 
{ 
    public function update(Note $new, Note $old) 
    { 
    //does stuff 
    } 
} 

作爲替代方案,我可以做的類的instanceof或支票,只是想知道如果我能做到這一點,而不是。

+2

總之,不,試試吧http://codepad.org/HHuGzMTM –

回答

1

不,您不能執行的簽名必須與聲明的原型完全匹配。所以你不能使用更窄的參數限制。這是相當RTM,實際上是:

注:

實現接口必須使用相同的方法 簽名,在接口中定義的類。不這樣做會導致 發生致命錯誤。

+0

我曾經看過TFM在很多情況下都很模糊,以爲我會把它提供給人羣。 – Snowburnt