0
Отвечено

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

Александр Татульченков 4 年 前 更新人: Alexander Shvets 4 年 前 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.

很好,我很满意
满意度评分用户: Александр Татульченков 4 年 前
解答
Отвечено

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


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

UserEcho 的客户支持