2017-08-14 17 views
0

この質問の正確な名前はわかりません。 したがって、私は$dateのようないくつかのプロパティを持つクラスを持っています。 次に、私の方法では、いくつかの計算をループしています。繰り返しのたびに$date->modify('+1 month'); 開始日が01/01/2000の場合、24回繰り返した後、01/01/2002になりました。 しかし、このループの後、私は開始日(変更されていない)で別のメソッドを呼び出す必要がありますが、$ this - > $ dateは私に01/01/2002の変更日を与えます。 私は次のようなものを実装しようとしました:afterループを復帰させるには、$date->modify("$duration * -1 . 'months' ");のように復帰しますが、いくつかの特定のケースでは、プロジェクトは既に複雑であるため、+ 1ヶ月間の差分が戻ってきます。変数の値を保持する 'const'を定義する方法は?

だから、私は次のようになめらかを作るための方法の初めに試してみました:

$newArray = []; 
array_push($newArray,$this->date); 

しかし、いずれにせよ、それは私に変更された日付を与える:/

どのように私はどこかにその意志変数を作ることができますどこからでもこの日付にアクセスできますか?

同様に、変数から定数を定義し、それをどこからでも使用できますか?

+1

あなたはクラスを投稿できますか? – IsThisJavascript

+0

['clone'](http://php.net/manual/en/language.oop5.cloning.php)を使って元の' date'オブジェクトのコピーを作ることができます。 '$ orig_date = clone $ date;' – Himal

+0

'DateTimeImmutable'を使用します - すべての変更はオリジナルに影響を与えずに変更されたコピーを返します – iainn

答えて

0

元のままにする必要がある場合は、変更する代わりに複製する必要があります。その後、ループ内のクローンに月を追加することができます。

$iterationDate = clone $date; 

$iterationDateを変更すると、元の日付は変更されません。

関連する問題