为什么我必须在PHP适配器上指定类名

时间:2016-12-19 21:34:31

标签: php adapter

在创建PHP适配器时,我读取的所有源都使用以下语法:

class Adapter {
  private $object;

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

我不明白为什么我必须在适配器构造函数参数中声明类的名称,就在对象本身之前。我不能只使用... __construct($obj) {,因为当作为参数传递时,对象将被实例化?

2 个答案:

答案 0 :(得分:1)

声明类名会强制接受参数实例。

__construct(OriginalClass $obj)

这会强制传递OriginalClass。如果将DifferentClass作为构造函数参数传递,代码将无法编译/运行。

答案 1 :(得分:1)

**OriginalClass**部分称为type hint,它将构造函数参数限制为特定类的对象。因此,在您的情况下,它确保您的Adapter类只能用于特定的类。