이 코드에서 내 DateTime 개체가 참조로 복사 된 것 같습니다.PHP - DateTime 객체가 내 코드에서 참조로 복사되는 이유는 무엇입니까?
<?php
date_default_timezone_set('UTC');
$dt1 = new \DateTime('2015-03-15');
$dt2 = $dt1;
$dt2 = $dt2->modify('-1 year');
echo $dt1->format('c') . PHP_EOL;
echo $dt2->format('c');
?>
내가 기대했다 :
여기 내 코드의
2015-03-15T00:00:00+00:00
2014-03-15T00:00:00+00:00
하지만이있어 :
2014-03-15T00:00:00+00:00
2014-03-15T00:00:00+00:00
클론'$ dt2 = clone $ dt1;' – vaso123
'DateTimeImmutable' 클래스를 사용하면 작동 할 것이고 결코 수정되지 않고 새로운 객체를 반환한다는 점만 제외하면'DateTime' 클래스와 완전히 동일하게 동작합니다 대신. – Daan