1--TEST--
2DatePeriod arguments/wrong arguments
3--FILE--
4<?php
5$dp = new DatePeriod(new \DateTimeImmutable("2023-01-13 12:29:30"), DateInterval::createFromDateString("tomorrow"), 4);
6echo get_class($dp) == 'DatePeriod' ? "OK\n" : "FAIL\n";
7
8$dp = new DatePeriod(new \DateTimeImmutable("2023-01-13 12:29:30"), DateInterval::createFromDateString("tomorrow"), new \DateTimeImmutable("2023-01-16 16:49:29"));
9echo get_class($dp) == 'DatePeriod' ? "OK\n" : "FAIL\n";
10
11$dp = new DatePeriod("R4/2012-07-01T00:00:00Z/P7D");
12echo get_class($dp) == 'DatePeriod' ? "OK\n" : "FAIL\n";
13
14$dp = DatePeriod::createFromISO8601String("R4/2012-07-01T00:00:00Z/P7D");
15echo get_class($dp) == 'DatePeriod' ? "OK\n" : "FAIL\n";
16
17try {
18	$dp = new DatePeriod("2023-01-13 17:24:58", DateInterval::createFromDateString("tomorrow"), 4);
19	echo "OK\n";
20} catch (\TypeError $e) {
21	echo $e::class, ': ', $e->getMessage(), "\n";
22}
23?>
24--EXPECTF--
25OK
26OK
27
28Deprecated: Calling DatePeriod::__construct(string $isostr, int $options = 0) is deprecated, use DatePeriod::createFromISO8601String() instead in %s on line %d
29OK
30OK
31TypeError: DatePeriod::__construct() accepts (DateTimeInterface, DateInterval, int [, int]), or (DateTimeInterface, DateInterval, DateTime [, int]), or (string [, int]) as arguments
32