【发布时间】:2016-08-29 14:37:53
【问题描述】:
在我的实体中,我有一个作为值对象的属性。
class Meeting
{
/** @var MeetingStatus */
private $status
/**
* @param MeetingStatus|null $status
*/
public function setStatus(MeetingStatus $status = null)
{
$this->status = $status ?: new MeetingStatus(MeetingStatus::DRAFT);
}
}
我看到 typehint 和允许 null 的唯一方法是将 null 设置为默认参数值。但是允许没有必需参数的设置器似乎很奇怪。
$meeting->setStatus(); // wut?
有人对此有一个优雅的解决方案吗?
【问题讨论】:
-
根据官方文档,给 $status 默认值 null 是要走的路。从语义上讲,调用 setStatus() 和 setStatus(null) 没有区别。
标签: php type-hinting