Почему я должен указать имя класса на адаптере PHP

При создании адаптера PHP все источники, которые я читаю, используют следующий синтаксис:

class Adapter {
private $object;

public function __construct(**OriginalClass** $obj) {
$this->object = $obj;
...

Я не понимаю, почему я должен указывать имя класса в аргументе конструктора адаптера непосредственно перед самим объектом. Я не мог просто использовать ... __construct($obj) {, поскольку объект будет уже создан при передаче в качестве аргумента?

0

Решение

**OriginalClass** часть называется подсказка типа которые ограничивают аргумент конструктора объектом определенного класса. Итак, в вашем случае это гарантирует, что ваш класс Adapter может быть использован только для определенного класса.

1

Другие решения

Указание имени класса заставляет принятый экземпляр параметра.

__construct(OriginalClass $obj)

Это силы OriginalClass быть переданным. Если вы пройдете DifferentClass в качестве параметра конструктора код не будет компилироваться / выполняться.

1

По вопросам рекламы [email protected]