2016-05-27 8 views
0

は、私が直面しています何:この時点$init変数でカーボン初期日付値

$week_start = new Carbon(); 
$week_start->setISODate($year,$week); //2016 , 21 

$init = $week_start; //I am assigning the datetime created to $init variable (1) 

$min_sqldate = $week_start->toDateString(); //string of date 
$max_sqldate = $week_start->addDays(6)->toDateString(); //string of date adding 6 days 

はすでに$max_sqldateの値を持っています。 (2)

これはどのように可能ですか?後で使用できるように、初期変数をどのように保持する必要がありますか?場合$init

値(1):場合に$init

Carbon {#328 ▼ 
     +"date": "2016-05-23 16:58:36.000000" 
     +"timezone_type": 3 
     +"timezone": "Europe/Helsinki" 
    } 

値(2):

Carbon {#328 ▼ 
     +"date": "2016-05-29 17:00:34.000000" 
     +"timezone_type": 3 
     +"timezone": "Europe/Helsinki" 
} 
+0

あなたは、なぜあなたは' $ INIT = $ week_startこれをやっている説明できますか? – TheFallen

+0

私は 'a = b'ならばどのプログラミング言語でも、' b = anything'なら 'a'の値は同じであると思います。 –

答えて

2

カーボンの "新鮮な" コピーが返されcopy()方法を提供しますインスタンス、例えば

$init = $week_start->copy(); 

PHPでは、デフォルトでequalsを使用してオブジェクトをコピーすると、独立したコピーが作成されることはありません。また、cloneキーワードを使用してこの問題を回避することもできます。 `とあなたが** $ initの**変数から何を期待します。

http://php.net/manual/en/language.oop5.references.php

+0

equalsを使ってオブジェクトを扱うときには、 '$ a = &$b;'のように最初のオブジェクトへのポインタを作成しています 私はそれを知らなかったのです!ありがとうございました! –

関連する問題