我很难理解构造函数中参数的类型提示和初始化。我偶然发现了这段代码:
class TabController {
protected $post;
protected $user;
public function __construct(Post $post, User $user)
{
$this->post = $post;
$this->user = $user;
}
}
如果不是这样设置,我认为参数不是可选的:
public function __construct(Post $post=NULL, User $user=NULL)
似乎这两个示例都初始化了一个空对象(不是 NULL)。
如果我在普通函数中尝试第一个示例,如果我不提供参数,它会失败。