hell0w0rd
Продвинутый новичок
clone нефига не clone. Возвращает не новый а тот же самый объект. Ок.
Кстати унаследоваться тоже невозможно... и вот результат:
В ядре какая-то ошибка, что datetime может быть один на процесс, или я что-то не так делаю?
PHP:
$dt = new Date('2013-09-01');
$clone = clone $dt;
$clone->add(new DateInterval('P7D'));
var_dump($dt, $clone);
class Date
{
private $dateTime;
public function __construct($date)
{
$this->dateTime = new DateTime($date);
}
public function __clone()
{
$clone = new self($this->dateTime->format('Y-m-d'));
return $clone;
}
public function add($interval)
{
$this->dateTime->add($interval);
}
}
PHP:
$ php -v
PHP 5.5.4 (cli) (built: Sep 21 2013 13:40:55)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
$ php index.php
class Date#12 (1) {
private $dateTime =>
class DateTime#13 (3) {
public $date =>
string(19) "2013-09-08 00:00:00"
public $timezone_type =>
int(3)
public $timezone =>
string(13) "Europe/Moscow"
}
}
class Date#14 (1) {
private $dateTime =>
class DateTime#13 (3) {
public $date =>
string(19) "2013-09-08 00:00:00"
public $timezone_type =>
int(3)
public $timezone =>
string(13) "Europe/Moscow"
}
}