У меня есть метод класса, который имеет дело с датами:
public function setAvailability(DateTime $start, DateTime $end){
}
Поскольку доступность элемента может иметь нижний предел, верхний предел, оба или ни одного, я хотел бы сделать setAvailability() принимать значения NULL. Однако константа NULL
нарушает тип намека:
$foo->setAvailability(NULL, $end);
триггеры:
Допустимая фатальная ошибка: аргумент 1, переданный в Foo:: setAvailability(), должен быть экземпляр DateTime, null заданный
И, насколько я знаю, я не могу иметь экземпляр DateTime без значения. (Могу ли я?)
По какой-то причине я не могу понять, это работает:
public function setAvailability(DateTime $start=NULL, DateTime $end=NULL){
}
...
$foo->setAvailability(NULL, $end);
Но это выглядит как хак, который работает по чистой случайности.
Как бы вы справились с неустановленными датами в PHP-классах?