//Пример возврата нового обьека
$formatString = 'l, F j, Y';
$date1 = new DateTimeImmutable('12/25/2015');
// всегда вернет новый обьект а не будет при modify изменяють себя же
$date2 = $date1->modify('+1 month');
echo 'Date 1: ' . $date1->format($formatString) . '<br>';
echo 'Date 2: ' . $date2->format($formatString) . '<br>';
//Сохранение контекта
$formatString = 'l, F j, Y';
$date1 = new DateTime('7/4/2015');
$date2 = $date1->modify('+1 month');
// в таком случае даты будут одинаковы т.к. как меняет $date1 и записывает тоже в $date2
// поэтому буду одинаковыми при
var_dump($date1 === $date2);
Вопрос: как реализовать такоеже на php естесно на стороне ooп