将接口作为参数传递给某个函数

时间:2015-01-20 12:55:27

标签: php symfony interface interface-injection

我想知道。我在Symfony2 TranslationLoader类中找到了这个:

public function addLoader($format, LoaderInterface $loader)
{
    $this->loaders[$format] = $loader;
}

我发现LoaderInterface只有一种方法。但是我们怎么知道这个界面的实现呢?这是接口注入?

1 个答案:

答案 0 :(得分:1)

接口注入is a thing,但您在代码段中看到的确实是Type Hintingstrong typing的形式。

这样做,是在运行时强制传递给$loader的值必须与类型提示中指定的接口(或类)的定义相匹配。基本上,这个问题的答案是:

  

$loader是否实现了LoaderInterface的所有方法?

如果没有,您将获得catchable fatal error