У меня есть метод класса, который имеет дело с датами:Тип намекая и необязательные атрибуты в PHP
public function setAvailability(DateTime $start, DateTime $end){
}
Поскольку наличие элемента может иметь нижний предел, верхний предел, как и ни один, я хотел бы сделать setAvailability () также принимают значения NULL. Однако постоянная NULL
нарушает тип намекая:
$foo->setAvailability(NULL, $end);
триггеры:
Catchable fatal error: Argument 1 passed to Foo::setAvailability() must be an instance of DateTime, null given
И, насколько я знаю, я не могу иметь экземпляр DateTime без значения. (? Могу ли я)
По причине я не могу понять, это похоже на работу:
public function setAvailability(DateTime $start=NULL, DateTime $end=NULL){
}
...
$foo->setAvailability(NULL, $end);
Но это выглядит как хак, который работает по чистой случайности.
Как бы вы справились с неустановленными датами в PHP-классах?
Ссылка на соответствующую страницу руководства –
+1 похоже на поведение, на которое можно положиться. Было бы неплохо узнать, есть ли какой-то «нулевой» объект DateTime. –
@zerocrates: Спасибо. Это не только документированное поведение - это также объясняется в главе, которую вы ожидаете. Я чувствую себя новобранец <:-) –