在java文档中定义类型提示


Definition of type-hint in laravel documentation?

Laravel文档显示

当然,你也可以type-hint任何Laravel合约。如果容器可以解析,可以type-hint它。

那么type-hint的含义是什么呢?

如果您通过容器创建对象,它将尝试解析由对象的构造函数参数表示的依赖关系。但是,容器需要知道依赖项的类型,这就是为什么你需要对参数进行类型提示,这意味着你需要定义参数的类型,例如:

public function __construct(Hasher $hasher) {
  //some logic
}

在上面的例子中,我已经类型暗示了$ hashher参数——我告诉容器它应该传递一个hashher类型的对象。

除了对类名进行类型提示外,还可以对接口进行类型提示。Laravel中的契约是由Laravel的具体类实现的接口。如果你不关心传递什么特定的类,只要它实现给定的接口,这是有用的。

使用契约,上面的例子看起来像这样:

public function __construct(HasherContract $hasher) {
  //some logic
}