2011-11-10 29 views
0

是否有可能从函数返回接口?例如:在PHP中返回一个接口?

interface DBInterface { 
    public function getDB(); 
    [...] 
} 

class Bar { 

    public function defineDBObject($name){ 
    return DBInterface; 
    } 
} 

我对此表示怀疑,但我有一个客户喜欢编写涉及它的规范文档。我想确保它实际上是不可能的。

+0

AFAIK接口不能有实例。 – Robik

+3

最接近你可以得到的是返回一个实现该接口的对象 - 否则,不。 – BoltClock

+0

他是否打算返回实际的接口定义或实现该接口的对象? –

回答

3

你不能。你只能返回对象或原语。类和接口不是PHP中的对象。

0

您无法返回接口。你只能返回一个对象。你返回的对象可以实现一个特定的接口 - 因此实现了这些方法。

这是一个机制,它是从Java借来的来解决钻石问题。

2

您可以返回代表接口的ReflectionClass实例。直接返回接口是不可能的。

+0

OP,IMO的最佳选择。 –