如何防止在引用更改时更改原始对象?

时间:2016-07-27 11:03:06

标签: php reference pass-by-reference

在以下代码段中,$sdDateTime个对象。它被分配给一个名为$a的变量。在add上致电$a时,$sd也会发生变化。

$sd = new DateTime();
$a = $sd;
$a->add(new DateInterval("P1M")); // Add 1 month to $a

这是因为$a是对$sd的引用。有没有办法,$sd不会改变?这里的方法应该是什么?

1 个答案:

答案 0 :(得分:1)

使用clone

$sd = new DateTime();
$a = clone $sd;
$a->add(new DateInterval("P1M")); // Add 1 month to $a