0
Відповідь надано

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

Александр Татульченков 6 років тому оновлено anonymous 6 років тому 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

Відповідь

Відповідь
Відповідь надано

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


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

ДОБРЕ, Я ЗАДОВОЛЕНИЙ
Позначка задоволеності від Александр Татульченков 6 років тому
Відповідь
Відповідь надано

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


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