DateTime как необязательный параметр (по умолчанию «сейчас», а не ноль)? - PullRequest
6 голосов
/ 14 января 2012

Можно ли установить объект DateTime в качестве необязательного параметра, используя now по умолчанию?

Следующий код дает мне синтаксическую ошибку :

public function getData(array $metrics, DateTime $start,
    DateTime $end = new DateTime, $params = array())
{
    // Default DateTime constructor automatically use "now"
}

Это просто вопрос любопытства, я знаю, что могу сделать :

public function getData(array $metrics, DateTime $start,
    DateTime $end = null, $params = array())
{
    $end = is_null($end) ? new DateTime() : null;
}

1 Ответ

6 голосов
/ 14 января 2012

Нет, вы не можете установить объект как параметр функции / метода по умолчанию. Из документации :

Значения аргумента по умолчанию
Функция может определять значения по умолчанию в стиле C ++ для scalar arguments ...

Объект не является скалярным типом данных .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...