Tentative Static Returntype With Datetime¶
The createFromImmutable() method from DateTime and DateTimeImmutable always returns an object of the same class. In PHP 8.2 and later, the return type is now static
, it will tentatively return a children class, when the method is called from that child class.
PHP code¶
<?php
class A extends DateTime{}
$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");
$mutable = A::createFromImmutable( $date );
var_dump($mutable);
?>
Before¶
After¶
object(A)#2 (3) {
["date"]=>
string(26) "2014-06-20 11:45:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(13) "Europe/London"
}
PHP version change¶
This behavior changed in 8.2