0

我对这里的这种情况有点困惑。使用 PHP 8.0.10。在一个类中,有一个成员和 getter 方法

/**
 * @ORM\Column(type="datetime")
 */
private $gStart;

public function getStart(): ?\DateTimeInterface
{
    return $this->gStart;
}

然后我有另一个方法返回一个使用 $gStart 变量确定的值:

/**
 * @return \DateTimeInterface
 */
public function getEnd() {
    $end = $this->getStart();
    $gInterval = new \DateInterval( 'P90D' );
    $end->add( $gInterval );
    return $end;
}

现在 - 在调用 getEnd() 之后,成员 $gStart 发生了变化,就像我在参考上工作一样。这是为什么?我在这里想念什么?getEnd() 中的代码不应该让成员 $gStart 在副本上保持不变吗?

4

0 回答 0