3v4l.org

run code in 500+ PHP versions simultaneously
<?php $monthsAndLastDay = [ 1 => 31, 2 => 28, 3 => 31, 4 => 30, 5 => 31, 6 => 30, 7 => 31, 8 => 31, 9 => 30, 10 => 31, 11 => 30, 12 => 31, ]; foreach ($monthsAndLastDay as $month => $lastDay) { $start = (new DateTimeImmutable)->setDate(2017, $month, 1)->setTime(0, 0); $end = (new DateTimeImmutable)->setDate(2017, $month, $lastDay)->setTime(23, 59, 59); $diff = $end->diff($start); echo '------------------------' . PHP_EOL; echo 'Month: ' . $start->format('F') . PHP_EOL; echo '$diff->d: ' . $diff->d . PHP_EOL; echo '$diff->days: ' . $diff->days . PHP_EOL; echo '$diff->m: ' . $diff->m . PHP_EOL; }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 2, Position 2 = 53
Branch analysis from position: 2
2 jumps found. (Code = 78) Position 1 = 3, Position 2 = 53
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 53
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 53
filename:       /in/GHpCD
function name:  (null)
number of ops:  55
compiled vars:  !0 = $monthsAndLastDay, !1 = $lastDay, !2 = $month, !3 = $start, !4 = $end, !5 = $diff
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, <array>
   18     1      > FE_RESET_R                                           $7      !0, ->53
          2    > > FE_FETCH_R                                           ~8      $7, !1, ->53
          3    >   ASSIGN                                                       !2, ~8
   19     4        NEW                                                  $10     'DateTimeImmutable'
          5        DO_FCALL                                          0          
          6        INIT_METHOD_CALL                                             $10, 'setDate'
          7        SEND_VAL_EX                                                  2017
          8        SEND_VAR_EX                                                  !2
          9        SEND_VAL_EX                                                  1
         10        DO_FCALL                                          0  $12     
         11        INIT_METHOD_CALL                                             $12, 'setTime'
         12        SEND_VAL_EX                                                  0
         13        SEND_VAL_EX                                                  0
         14        DO_FCALL                                          0  $13     
         15        ASSIGN                                                       !3, $13
   20    16        NEW                                                  $15     'DateTimeImmutable'
         17        DO_FCALL                                          0          
         18        INIT_METHOD_CALL                                             $15, 'setDate'
         19        SEND_VAL_EX                                                  2017
         20        SEND_VAR_EX                                                  !2
         21        SEND_VAR_EX                                                  !1
         22        DO_FCALL                                          0  $17     
         23        INIT_METHOD_CALL                                             $17, 'setTime'
         24        SEND_VAL_EX                                                  23
         25        SEND_VAL_EX                                                  59
         26        SEND_VAL_EX                                                  59
         27        DO_FCALL                                          0  $18     
         28        ASSIGN                                                       !4, $18
   22    29        INIT_METHOD_CALL                                             !4, 'diff'
         30        SEND_VAR_EX                                                  !3
         31        DO_FCALL                                          0  $20     
         32        ASSIGN                                                       !5, $20
   24    33        ECHO                                                         '------------------------%0A'
   25    34        INIT_METHOD_CALL                                             !3, 'format'
         35        SEND_VAL_EX                                                  'F'
         36        DO_FCALL                                          0  $22     
         37        CONCAT                                               ~23     'Month%3A+', $22
         38        CONCAT                                               ~24     ~23, '%0A'
         39        ECHO                                                         ~24
   26    40        FETCH_OBJ_R                                          ~25     !5, 'd'
         41        CONCAT                                               ~26     '%24diff-%3Ed%3A+', ~25
         42        CONCAT                                               ~27     ~26, '%0A'
         43        ECHO                                                         ~27
   27    44        FETCH_OBJ_R                                          ~28     !5, 'days'
         45        CONCAT                                               ~29     '%24diff-%3Edays%3A+', ~28
         46        CONCAT                                               ~30     ~29, '%0A'
         47        ECHO                                                         ~30
   28    48        FETCH_OBJ_R                                          ~31     !5, 'm'
         49        CONCAT                                               ~32     '%24diff-%3Em%3A+', ~31
         50        CONCAT                                               ~33     ~32, '%0A'
         51        ECHO                                                         ~33
   18    52      > JMP                                                          ->2
         53    >   FE_FREE                                                      $7
   29    54      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
152.45 ms | 1716 KiB | 8 Q