Вернуть интерфейс в PHP? - PullRequest
0 голосов
/ 10 ноября 2011

Можно ли вернуть интерфейс из функции?Пример:

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

class Bar {

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

Я сомневаюсь в этом, но у меня есть клиент, который любит писать спецификации документов, которые требуют его.Я хочу убедиться, что это на самом деле невозможно.

Ответы [ 3 ]

3 голосов
/ 10 ноября 2011

Вы не можете. Вы можете только вернуть объекты или примитивы. Классы и интерфейсы не являются объектами в PHP.

2 голосов
/ 10 ноября 2011

Вы можете вернуть экземпляр ReflectionClass, представляющий интерфейс. Возврат интерфейса напрямую невозможен.

0 голосов
/ 10 ноября 2011

Вы не можете вернуть интерфейс.Вы можете только вернуть объект.Возвращаемый вами объект может реализовывать определенный интерфейс - следовательно, с помощью этих методов.

Это механизм, который заимствован из Java для преодоления проблемы с алмазом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...