我对这里的这种情况有点困惑。使用 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 在副本上保持不变吗?