为什么 PHPStorm 中的 PHPDoc 在此代码上出错?

Why does PHPDoc error in PHPStorm over this code?

在下面的代码中,@return 带有红色下划线。我期待一个接口被 returned 因为这是所有不同的供应商适配器实现的。

 /**
 * VendorFactory constructor.
 * @param Model $model
 * @return \Traders\Interfaces\VendorAdapterInterface
 */
public function __construct(Model $model)
{
    return $this->createAdapter($model);
}

这是 createAdapter 的代码,没有带红色下划线的 @return。

/**
 * @param Model $model
 * @return \Traders\Interfaces\VendorAdapterInterface
 */
public function createAdapter(Model $model)
{
    $type = str_replace('App\Models\', '', get_class($model)).'s';
    $fqcn = '\Traders\Adapters\'.$type.'\'.ucfirst(strtolower($model->name));
    return new $fqcn($model);
}

我已经尝试执行 /** 文档块并让 PHPStorm 输入它认为是 return 的值,它一直给我

@return mixed

您的问题是构造函数中的 return。 构造函数不采用 return 值,它们在实例化 class 的实例时执行。