3v4l.org

run code in 300+ PHP versions simultaneously
<?php final class AnonymousExtendsExistingClassInUnion { private ?DateTime $x = null; public function __construct() { if (rand(0,1)) { $this->x = new \DateTime('now'); var_dump('not extends'); var_dump($this->x); } else { $this->x = new class extends \DateTime {}; var_dump('extends'); var_dump($this->x); } } } (new AnonymousExtendsExistingClassInUnion()); (new AnonymousExtendsExistingClassInUnion()); (new AnonymousExtendsExistingClassInUnion()); (new AnonymousExtendsExistingClassInUnion()); (new AnonymousExtendsExistingClassInUnion()); (new AnonymousExtendsExistingClassInUnion()); (new AnonymousExtendsExistingClassInUnion()); (new AnonymousExtendsExistingClassInUnion()); (new AnonymousExtendsExistingClassInUnion()); (new AnonymousExtendsExistingClassInUnion());
Output for 7.4.33
string(11) "not extends" object(DateTime)#2 (3) { ["date"]=> string(26) "2022-12-06 12:39:58.002117" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } string(7) "extends" object(class@anonymous)#2 (3) { ["date"]=> string(26) "2022-12-06 12:39:58.002164" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } string(11) "not extends" object(DateTime)#2 (3) { ["date"]=> string(26) "2022-12-06 12:39:58.002183" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } string(11) "not extends" object(DateTime)#2 (3) { ["date"]=> string(26) "2022-12-06 12:39:58.002198" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } string(7) "extends" object(class@anonymous)#2 (3) { ["date"]=> string(26) "2022-12-06 12:39:58.002213" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } string(11) "not extends" object(DateTime)#2 (3) { ["date"]=> string(26) "2022-12-06 12:39:58.002227" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } string(11) "not extends" object(DateTime)#2 (3) { ["date"]=> string(26) "2022-12-06 12:39:58.002242" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } string(7) "extends" object(class@anonymous)#2 (3) { ["date"]=> string(26) "2022-12-06 12:39:58.002257" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } string(11) "not extends" object(DateTime)#2 (3) { ["date"]=> string(26) "2022-12-06 12:39:58.002272" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } string(11) "not extends" object(DateTime)#2 (3) { ["date"]=> string(26) "2022-12-06 12:39:58.002288" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" }

preferences:
65.73 ms | 483 KiB | 5 Q