Я не знаю, как именно назвать этот вопрос.
Итак, у меня есть класс, который имеет некоторые свойства, такие как $date
,
Далее, в моем методе я делаю цикл с некоторыми вычислениями, и в каждой итерации я $date->modify('+1 month');
Итак, если начальная дата была, например, 01.01.2000, то после 24 итераций она стала 01.01.2002.
Но после этого цикла я должен вызвать другой метод с начальной датой (неизменной), но $ this -> $ date дает мне измененную дату 01.01.2002.
Я пытался реализовать что-то вроде: после цикла for, чтобы сделать изменение ComeBack, как $date->modify("$duration * -1 . 'months' ");
, но в некоторых конкретных случаях, поскольку проект уже сложный, он возвращается с разницей в + — 1 месяц.
Итак, я попробовал в начале метода сделать что-то вроде:
$newArray = [];
array_push($newArray,$this->date);
Но в любом случае, это дает мне измененную дату: /
Как я могу сделать где-нибудь переменную, которая будет содержать дату начала, чтобы иметь доступ к этой дате из любого места?
Например, определить константу из переменной, а затем просто использовать ее где угодно?
Если вам нужно сохранить оригинал, вы должны его клонировать, а не модифицировать. Затем вы можете добавить месяцы к клону в цикле.
$iterationDate = clone $date;
Теперь ваша первоначальная дата не изменится при изменении $iterationDate
,
Других решений пока нет …