0
Answered

В чем смысл корректирующего конструктора?

Александр Татульченков 8 years ago updated by anonymous 8 years ago 1

// Local extension class.

class MyNewDate extends DateTime {
public function __construct() {
$args = func_get_args();
if (isset($args[0]) && is_a($args[0], 'DateTime')) {
call_user_func_array(array($this, 'parent::__construct'), $args[0]->format('Y-m-d H:i:s'));
}
else {
call_user_func_array(array($this, 'parent::__construct'), $args);
}
}
public function nextWeek() {
return $this->modify('+7 days');
}
}


В чем смысл этого конструктора? Зачем в него передавать класс DateTime? Если мы уберем конструктор, то наш метод будет также работать и наш класс MyNewDate можно передавать как параметр туда где использовался DateTime так как наш класс наследует от DateTime

Answer

Answer
Answered

Смысл в том, чтобы инициализировать новый объект уже существующим объектом DateTime, если он у вас есть. К примеру, если такой объект пришел к вам из сторонней функции.


Стандартный класс DateTime пока еще нельзя инициализировать другим объектом DateTime.

GOOD, I'M SATISFIED
Satisfaction mark by Александр Татульченков 8 years ago
Answer
Answered

Смысл в том, чтобы инициализировать новый объект уже существующим объектом DateTime, если он у вас есть. К примеру, если такой объект пришел к вам из сторонней функции.


Стандартный класс DateTime пока еще нельзя инициализировать другим объектом DateTime.