碳初值

Carbon initial date value

也许我因为树木而没有看到森林,但这就是我所面对的:

$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

此时$init变量已经有了$max_sqldate的值。 (2)

这怎么可能?我应该如何保留我的初始变量以便以后使用它?

案例 (1) 中 $init 的值:

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

案例 (2) 中 $init 的值:

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

Carbon 提供了一个 copy() 方法,它将 return 实例的 "fresh" 副本,例如

$init = $week_start->copy();

在 PHP 中默认情况下,当使用 equals 复制对象时,您不会以独立副本结束。您也可以使用 clone 关键字解决此问题。

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