final class Example extends Foo {
const FOO='foo';
public function __construct(
public readonly string $name = self::FOO
) {}
public function getClass(): string {
return DateTimeImmutable::class;
}
public function getClassFromSelf(): string {
return self::class;
}
public static function getClassFromStatic(): string {
return static::class;
}
public static function getParentClass(): string {
return parent::class;
}
}
$date = DateTimeImmutable::createFromMutable(new \DateTime());
echo $date::class;