大家。我是PHP的新手。我遇到DateTime
的问题:
$t1 = new DateTime();
$t1->setTime(9, 30);
$t2 = $t1;
$t2->add (new DateInterval('PT10M'));
echo $t1->format('H:i'); # outputs 9:40
正如您所看到的,通过更改$t2
的值,我还更改了$t1
的值,这不是我想要的。你能告诉我为什么会这样,以及如何避免它。谢谢。
伊恩
答案 0 :(得分:4)
$t1
和$t2
只是对象的引用。执行$t1 = $t2
时,您只是复制引用,而不是对象。
你可以改为$t1 = clone $t2
。
答案 1 :(得分:0)
你应该使用
$t2 = clone $t1;
答案 2 :(得分:0)
您导致$ t2指向$ t1。所以编辑$ t2会导致你编辑$ t1的内存。
使用克隆代替:$ t2 = clone $ t1