3v4l.org

run code in 300+ PHP versions simultaneously
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 2, Position 2 = 38
Branch analysis from position: 2
2 jumps found. (Code = 78) Position 1 = 3, Position 2 = 38
Branch analysis from position: 3
2 jumps found. (Code = 43) Position 1 = 30, Position 2 = 32
Branch analysis from position: 30
1 jumps found. (Code = 42) Position 1 = 33
Branch analysis from position: 33
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 38
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 38
filename:       /in/Tgqcf
function name:  (null)
number of ops:  40
compiled vars:  !0 = $tests, !1 = $test, !2 = $start, !3 = $end, !4 = $month, !5 = $msg
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   13     0  E >   ASSIGN                                                   !0, <array>
   23     1      > FE_RESET_R                                       $7      !0, ->38
          2    > > FE_FETCH_R                                               $7, !1, ->38
   24     3    >   NEW                                              $8      'DateTime'
          4        CHECK_FUNC_ARG                                           
          5        FETCH_DIM_FUNC_ARG                               $9      !1, 'start'
          6        SEND_FUNC_ARG                                            $9
          7        DO_FCALL                                      0          
          8        ASSIGN                                                   !2, $8
   25     9        NEW                                              $12     'DateTime'
         10        CHECK_FUNC_ARG                                           
         11        FETCH_DIM_FUNC_ARG                               $13     !1, 'end'
         12        SEND_FUNC_ARG                                            $13
         13        DO_FCALL                                      0          
         14        ASSIGN                                                   !3, $12
   26    15        INIT_FCALL                                               'diffinmonth'
         16        SEND_VAR                                                 !2
         17        SEND_VAR                                                 !3
         18        DO_FCALL                                      0  $16     
         19        ASSIGN                                                   !4, $16
   27    20        FETCH_DIM_R                                      ~18     !1, 'start'
         21        CONCAT                                           ~19     ~18, '+-+'
         22        FETCH_DIM_R                                      ~20     !1, 'end'
         23        CONCAT                                           ~21     ~19, ~20
         24        ASSIGN                                                   !5, ~21
   28    25        CONCAT                                           ~23     '+%3A+', !4
         26        CONCAT                                           ~24     ~23, '+Month+'
         27        FETCH_DIM_R                                      ~25     !1, 'month'
         28        IS_IDENTICAL                                             !4, ~25
         29      > JMPZ                                                     ~26, ->32
         30    >   QM_ASSIGN                                        ~27     'Ok'
         31      > JMP                                                      ->33
         32    >   QM_ASSIGN                                        ~27     'Error'
         33    >   CONCAT                                           ~28     ~24, ~27
         34        CONCAT                                           ~29     ~28, '%3Cbr%3E%0A'
         35        ASSIGN_OP                                     8          !5, ~29
   29    36        ECHO                                                     !5
   23    37      > JMP                                                      ->2
         38    >   FE_FREE                                                  $7
   30    39      > RETURN                                                   1

Function diffinmonth:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 46) Position 1 = 44, Position 2 = 46
Branch analysis from position: 44
2 jumps found. (Code = 43) Position 1 = 47, Position 2 = 49
Branch analysis from position: 47
1 jumps found. (Code = 42) Position 1 = 55
Branch analysis from position: 55
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 49
2 jumps found. (Code = 46) Position 1 = 51, Position 2 = 53
Branch analysis from position: 51
2 jumps found. (Code = 43) Position 1 = 54, Position 2 = 55
Branch analysis from position: 54
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 55
Branch analysis from position: 53
Branch analysis from position: 46
filename:       /in/Tgqcf
function name:  diffInMonth
number of ops:  59
compiled vars:  !0 = $start, !1 = $end, !2 = $endDate, !3 = $yearStart, !4 = $monthStart, !5 = $dayStart, !6 = $yearEnd, !7 = $monthEnd, !8 = $dayEnd, !9 = $mothDiff
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
          1        RECV                                             !1      
    4     2        CLONE                                            ~10     !1
          3        INIT_METHOD_CALL                                         ~10, 'setTimeZone'
          4        INIT_METHOD_CALL                                         !0, 'getTimeZone'
          5        DO_FCALL                                      0  $11     
          6        SEND_VAR_NO_REF_EX                                       $11
          7        DO_FCALL                                      0  $12     
          8        ASSIGN                                                   !2, $12
    5     9        INIT_FCALL                                               'explode'
         10        SEND_VAL                                                 '+'
         11        INIT_METHOD_CALL                                         !0, 'format'
         12        SEND_VAL_EX                                              'Y+m+dHis'
         13        DO_FCALL                                      0  $14     
         14        SEND_VAR                                                 $14
         15        DO_ICALL                                         $15     
         16        FETCH_LIST_R                                     $16     $15, 0
         17        ASSIGN                                                   !3, $16
         18        FETCH_LIST_R                                     $18     $15, 1
         19        ASSIGN                                                   !4, $18
         20        FETCH_LIST_R                                     $20     $15, 2
         21        ASSIGN                                                   !5, $20
         22        FREE                                                     $15
    6    23        INIT_FCALL                                               'explode'
         24        SEND_VAL                                                 '+'
         25        INIT_METHOD_CALL                                         !2, 'format'
         26        SEND_VAL_EX                                              'Y+m+dHis'
         27        DO_FCALL                                      0  $22     
         28        SEND_VAR                                                 $22
         29        DO_ICALL                                         $23     
         30        FETCH_LIST_R                                     $24     $23, 0
         31        ASSIGN                                                   !6, $24
         32        FETCH_LIST_R                                     $26     $23, 1
         33        ASSIGN                                                   !7, $26
         34        FETCH_LIST_R                                     $28     $23, 2
         35        ASSIGN                                                   !8, $28
         36        FREE                                                     $23
    7    37        SUB                                              ~30     !6, !3
         38        MUL                                              ~31     ~30, 12
         39        ADD                                              ~32     ~31, !7
         40        SUB                                              ~33     ~32, !4
         41        ASSIGN                                                   !9, ~33
    8    42        IS_SMALLER                                       ~35     !8, !5
         43      > JMPZ_EX                                          ~35     ~35, ->46
         44    >   IS_SMALLER_OR_EQUAL                              ~36     !0, !1
         45        BOOL                                             ~35     ~36
         46    > > JMPZ                                                     ~35, ->49
         47    >   PRE_DEC                                                  !9
         48      > JMP                                                      ->55
    9    49    >   IS_SMALLER                                       ~38     !5, !8
         50      > JMPZ_EX                                          ~38     ~38, ->53
         51    >   IS_SMALLER                                       ~39     !1, !0
         52        BOOL                                             ~38     ~39
         53    > > JMPZ                                                     ~38, ->55
         54    >   PRE_INC                                                  !9
   10    55    >   VERIFY_RETURN_TYPE                                       !9
         56      > RETURN                                                   !9
   11    57*       VERIFY_RETURN_TYPE                                       
         58*     > RETURN                                                   null

End of function diffinmonth

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
217.11 ms | 980 KiB | 15 Q