【问题标题】:How to prevent changing the original object when its reference changes? [duplicate]如何防止在引用更改时更改原始对象? [复制]
【发布时间】:2016-12-01 08:34:38
【问题描述】:

在下面的 sn-p 中,$sd 是一个 DateTime 对象。它被分配给一个名为$a 的变量。在$a 上调用add 时,$sd 也会发生变化。

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

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

【问题讨论】:

    标签: php reference pass-by-reference


    【解决方案1】:

    使用clone

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      相关资源
      最近更新 更多