我有一个处理日期的类方法:
public function setAvailability(DateTime $start, DateTime $end){
}
由于商品的可用性可以有下限、上限、两者都有或者没有,因此我希望setAvailability()方法也能接受NULL值。然而,NULL
常量违反了类型提示:
$foo->setAvailability(NULL, $end);
触发器:
可捕获致命错误:传递给Foo::setAvailability()的第一个参数必须是DateTime实例,但实际传入的是null。
据我所知,我无法拥有一个没有值的DateTime实例。(我可以吗?)
出于某种原因,以下内容似乎有效:
public function setAvailability(DateTime $start=NULL, DateTime $end=NULL){
}
...
$foo->setAvailability(NULL, $end);
但看起来这只是靠纯粹的运气才能奏效的黑客行为。
在 PHP 类中如何处理未设置的日期?