Зачем в типе возвращаемого значения указывать интерфейс

Есть вот такой кусок кода класса

public function createCellPhone(): Phone
{
    return new CellPhone();
}

И сам интерфейс

interface Phone
{
 public function call();
}

В createCellPhone указан тип возвращаемого значения интерфейс. Зачем?


Ответы (1 шт):

Автор решения: NoSkill

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

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

Это общее описание...

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

→ Ссылка