3v4l.org

run code in 300+ 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.0.0


preferences:
182.65 ms | 1403 KiB | 13 Q