У меня есть метод класса, который работает с датами:
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?