PhpStorm警告期待错误的事情

时间:2016-04-25 11:41:08

标签: php phpstorm

在一个文件中,我正在创建一个这样的控制器:

$controller = new typeController(true, $dbHandler, $repository);

和PhpStorm突出了“真实”这个词。说'期望的存储库,得到了bool'

typeController构造是:

public function __construct($createSession=true, $con=false, Repository $repository) {
    parent::__construct($createSession, $con);
    $this->repository = $repository;
}

那么为什么它首先应该是存储库而不是bool?为什么$ dbHandler工作正常,我缺少什么?

编辑: 快速文档说:

public function typeController::__construct($createSession=true, $con=false, Repository $repository) typeController 

typeController构造函数。 参数:

  

bool $ createSession

     

bool $ con

     

classes \ Repository $ repository

声明于:

classes\types\typeController

1 个答案:

答案 0 :(得分:3)

$repository字段没有默认值,但它是最后一个构造函数参数。由于其他两个都有默认值,因此$repository应该首先出现,如下所示:

public function __construct(Repository $repository, $createSession=true, $con=false)

这样你可以像这样初始化控制器:

$controller = new typeController($repository);

如果你想保留默认值,或者像这样:

$controller = new typeController($repository, true, $dbHandler);

如果你想覆盖它们。

在具有默认值的构造函数参数之后,您不能放置没有默认值的构造函数参数,因为在对象实例化期间可以省略默认参数