DatePeriod_set_state.phpt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. --TEST--
  2. Test __set_state magic method for recreating a DatePeriod object
  3. --CREDITS--
  4. Mark Baker mark@lange.demon.co.uk at the PHPNW2017 Conference for PHP Testfest 2017
  5. --FILE--
  6. <?php
  7. $datePeriodObject = new DatePeriod(
  8. new DateTime('2017-10-06 23:30', new DateTimeZone('UTC')),
  9. new DateInterval('PT1H30M'),
  10. 24
  11. );
  12. $datePeriodState = var_export($datePeriodObject, true);
  13. eval("\$datePeriodObjectNew = {$datePeriodState};");
  14. var_dump($datePeriodObjectNew);
  15. ?>
  16. --EXPECTF--
  17. object(DatePeriod)#%d (6) {
  18. ["start"]=>
  19. object(DateTime)#%d (3) {
  20. ["date"]=>
  21. string(26) "2017-10-06 23:30:00.000000"
  22. ["timezone_type"]=>
  23. int(3)
  24. ["timezone"]=>
  25. string(3) "UTC"
  26. }
  27. ["current"]=>
  28. NULL
  29. ["end"]=>
  30. NULL
  31. ["interval"]=>
  32. object(DateInterval)#%d (16) {
  33. ["y"]=>
  34. int(0)
  35. ["m"]=>
  36. int(0)
  37. ["d"]=>
  38. int(0)
  39. ["h"]=>
  40. int(1)
  41. ["i"]=>
  42. int(30)
  43. ["s"]=>
  44. int(0)
  45. ["f"]=>
  46. float(0)
  47. ["weekday"]=>
  48. int(0)
  49. ["weekday_behavior"]=>
  50. int(0)
  51. ["first_last_day_of"]=>
  52. int(0)
  53. ["invert"]=>
  54. int(0)
  55. ["days"]=>
  56. bool(false)
  57. ["special_type"]=>
  58. int(0)
  59. ["special_amount"]=>
  60. int(0)
  61. ["have_weekday_relative"]=>
  62. int(0)
  63. ["have_special_relative"]=>
  64. int(0)
  65. }
  66. ["recurrences"]=>
  67. int(25)
  68. ["include_start_date"]=>
  69. bool(true)
  70. }