3v4l.org

run code in 300+ PHP versions simultaneously
<?php $start = new DateTime('2012-07-01'); $interval = new DateInterval('P7D'); $end = new DateTime('2012-07-31'); $recurrences = 4; $iso = 'R4/2012-07-01T00:00:00Z/P7D'; // All of these periods are equivalent. $p = new DatePeriod($start, $interval, $recurrences); $p = new DatePeriod($start, $interval, $end); //$p = new DatePeriod($iso); foreach ($p as $d) { echo $d->format('d '); } echo "\n"; $p = \PHP_VERSION_ID >= 70107 ? clone $p : new \DatePeriod( $p->getStartDate(), new \DateInterval('P1D'), $p->getEndDate() ?: $p->recurrences - 1, (int) !$p->include_start_date ) ; foreach ($p as $d) { echo $d->format('d '); }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 27, Position 2 = 33
Branch analysis from position: 27
2 jumps found. (Code = 78) Position 1 = 28, Position 2 = 33
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 27
Branch analysis from position: 27
Branch analysis from position: 33
2 jumps found. (Code = 43) Position 1 = 36, Position 2 = 39
Branch analysis from position: 36
1 jumps found. (Code = 42) Position 1 = 60
Branch analysis from position: 60
2 jumps found. (Code = 77) Position 1 = 62, Position 2 = 68
Branch analysis from position: 62
2 jumps found. (Code = 78) Position 1 = 63, Position 2 = 68
Branch analysis from position: 63
1 jumps found. (Code = 42) Position 1 = 62
Branch analysis from position: 62
Branch analysis from position: 68
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 68
Branch analysis from position: 39
2 jumps found. (Code = 77) Position 1 = 62, Position 2 = 68
Branch analysis from position: 62
Branch analysis from position: 68
Branch analysis from position: 33
filename:       /in/agfao
function name:  (null)
number of ops:  70
compiled vars:  !0 = $start, !1 = $interval, !2 = $end, !3 = $recurrences, !4 = $iso, !5 = $p, !6 = $d
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   NEW                                              $7      'DateTime'
          1        SEND_VAL_EX                                              '2012-07-01'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !0, $7
    4     4        NEW                                              $10     'DateInterval'
          5        SEND_VAL_EX                                              'P7D'
          6        DO_FCALL                                      0          
          7        ASSIGN                                                   !1, $10
    5     8        NEW                                              $13     'DateTime'
          9        SEND_VAL_EX                                              '2012-07-31'
         10        DO_FCALL                                      0          
         11        ASSIGN                                                   !2, $13
    6    12        ASSIGN                                                   !3, 4
    7    13        ASSIGN                                                   !4, 'R4%2F2012-07-01T00%3A00%3A00Z%2FP7D'
   10    14        NEW                                              $18     'DatePeriod'
         15        SEND_VAR_EX                                              !0
         16        SEND_VAR_EX                                              !1
         17        SEND_VAR_EX                                              !3
         18        DO_FCALL                                      0          
         19        ASSIGN                                                   !5, $18
   11    20        NEW                                              $21     'DatePeriod'
         21        SEND_VAR_EX                                              !0
         22        SEND_VAR_EX                                              !1
         23        SEND_VAR_EX                                              !2
         24        DO_FCALL                                      0          
         25        ASSIGN                                                   !5, $21
   14    26      > FE_RESET_R                                       $24     !5, ->33
         27    > > FE_FETCH_R                                               $24, !6, ->33
   15    28    >   INIT_METHOD_CALL                                         !6, 'format'
         29        SEND_VAL_EX                                              'd+'
         30        DO_FCALL                                      0  $25     
         31        ECHO                                                     $25
   14    32      > JMP                                                      ->27
         33    >   FE_FREE                                                  $24
   18    34        ECHO                                                     '%0A'
   20    35      > JMPZ                                                     <true>, ->39
   21    36    >   CLONE                                            ~26     !5
         37        QM_ASSIGN                                        ~27     ~26
         38      > JMP                                                      ->60
   22    39    >   NEW                                              $28     'DatePeriod'
   23    40        INIT_METHOD_CALL                                         !5, 'getStartDate'
         41        DO_FCALL                                      0  $29     
         42        SEND_VAR_NO_REF_EX                                       $29
   24    43        NEW                                              $30     'DateInterval'
         44        SEND_VAL_EX                                              'P1D'
         45        DO_FCALL                                      0          
         46        SEND_VAR_NO_REF_EX                                       $30
   25    47        INIT_METHOD_CALL                                         !5, 'getEndDate'
         48        DO_FCALL                                      0  $32     
         49        JMP_SET                                          ~33     $32, ->53
         50        FETCH_OBJ_R                                      ~34     !5, 'recurrences'
         51        SUB                                              ~35     ~34, 1
         52        QM_ASSIGN                                        ~33     ~35
         53        SEND_VAL_EX                                              ~33
   26    54        FETCH_OBJ_R                                      ~36     !5, 'include_start_date'
         55        BOOL_NOT                                         ~37     ~36
         56        CAST                                          4  ~38     ~37
         57        SEND_VAL_EX                                              ~38
         58        DO_FCALL                                      0          
         59        QM_ASSIGN                                        ~27     $28
   20    60    >   ASSIGN                                                   !5, ~27
   30    61      > FE_RESET_R                                       $41     !5, ->68
         62    > > FE_FETCH_R                                               $41, !6, ->68
   31    63    >   INIT_METHOD_CALL                                         !6, 'format'
         64        SEND_VAL_EX                                              'd+'
         65        DO_FCALL                                      0  $42     
         66        ECHO                                                     $42
   30    67      > JMP                                                      ->62
         68    >   FE_FREE                                                  $41
   32    69      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
156.51 ms | 1399 KiB | 13 Q