3v4l.org

run code in 300+ PHP versions simultaneously
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 48
Branch analysis from position: 48
2 jumps found. (Code = 44) Position 1 = 50, Position 2 = 35
Branch analysis from position: 50
1 jumps found. (Code = 42) Position 1 = 73
Branch analysis from position: 73
2 jumps found. (Code = 44) Position 1 = 75, Position 2 = 53
Branch analysis from position: 75
1 jumps found. (Code = 42) Position 1 = 97
Branch analysis from position: 97
2 jumps found. (Code = 44) Position 1 = 99, Position 2 = 78
Branch analysis from position: 99
1 jumps found. (Code = 42) Position 1 = 121
Branch analysis from position: 121
2 jumps found. (Code = 44) Position 1 = 123, Position 2 = 102
Branch analysis from position: 123
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 102
2 jumps found. (Code = 44) Position 1 = 123, Position 2 = 102
Branch analysis from position: 123
Branch analysis from position: 102
Branch analysis from position: 78
2 jumps found. (Code = 44) Position 1 = 99, Position 2 = 78
Branch analysis from position: 99
Branch analysis from position: 78
Branch analysis from position: 53
2 jumps found. (Code = 44) Position 1 = 75, Position 2 = 53
Branch analysis from position: 75
Branch analysis from position: 53
Branch analysis from position: 35
2 jumps found. (Code = 44) Position 1 = 50, Position 2 = 35
Branch analysis from position: 50
Branch analysis from position: 35
filename:       /in/hmcm6
function name:  (null)
number of ops:  124
compiled vars:  !0 = $i, !1 = $start
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   31     0  E >   INIT_FCALL                                               'var_dump'
          1        INIT_FCALL                                               'datesamemonth'
          2        SEND_VAL                                                 '2022-01-31'
          3        SEND_VAL                                                 3
          4        SEND_VAL                                                 '-'
          5        DO_FCALL                                      0  $2      
          6        SEND_VAR                                                 $2
          7        DO_ICALL                                                 
   32     8        INIT_FCALL                                               'var_dump'
          9        INIT_FCALL                                               'datesamemonth'
         10        SEND_VAL                                                 '2022-11-30'
         11        SEND_VAL                                                 3
         12        SEND_VAL                                                 '%2B'
         13        DO_FCALL                                      0  $4      
         14        SEND_VAR                                                 $4
         15        DO_ICALL                                                 
   33    16        INIT_FCALL                                               'var_dump'
         17        INIT_FCALL                                               'datesamemonth'
         18        SEND_VAL                                                 '2022-01-31'
         19        SEND_VAL                                                 25
         20        SEND_VAL                                                 '%2B'
         21        DO_FCALL                                      0  $6      
         22        SEND_VAR                                                 $6
         23        DO_ICALL                                                 
   34    24        INIT_FCALL                                               'var_dump'
         25        INIT_FCALL                                               'datesamemonth'
         26        SEND_VAL                                                 '2022-01-16'
         27        SEND_VAL                                                 25
         28        SEND_VAL                                                 '%2B'
         29        DO_FCALL                                      0  $8      
         30        SEND_VAR                                                 $8
         31        DO_ICALL                                                 
   36    32        ECHO                                                     '%0A%0ATEST%3A+FIRST+OF+%28%2B1+month%29%0A'
   37    33        ASSIGN                                                   !0, 1
         34      > JMP                                                      ->48
   38    35    >   CONCAT                                           ~11     '2023-', !0
         36        CONCAT                                           ~12     ~11, '-01'
         37        ASSIGN                                                   !1, ~12
   39    38        CONCAT                                           ~14     !1, '+----%3E+'
         39        INIT_FCALL                                               'datesamemonth'
         40        SEND_VAR                                                 !1
         41        SEND_VAL                                                 1
         42        SEND_VAL                                                 '%2B'
         43        DO_FCALL                                      0  $15     
         44        CONCAT                                           ~16     ~14, $15
         45        CONCAT                                           ~17     ~16, '%0A'
         46        ECHO                                                     ~17
   37    47        PRE_INC                                                  !0
         48    >   IS_SMALLER_OR_EQUAL                                      !0, 12
         49      > JMPNZ                                                    ~19, ->35
   42    50    >   ECHO                                                     '%0A%0ATEST%3A+LAST+OF+%28%2B12+months%29%0A'
   43    51        ASSIGN                                                   !0, 1
         52      > JMP                                                      ->73
   44    53    >   INIT_FCALL                                               'date'
         54        SEND_VAL                                                 'Y-m-t'
         55        INIT_FCALL                                               'strtotime'
         56        CONCAT                                           ~21     '2023-', !0
         57        CONCAT                                           ~22     ~21, '-01'
         58        SEND_VAL                                                 ~22
         59        DO_ICALL                                         $23     
         60        SEND_VAR                                                 $23
         61        DO_ICALL                                         $24     
         62        ASSIGN                                                   !1, $24
   45    63        CONCAT                                           ~26     !1, '+----%3E+'
         64        INIT_FCALL                                               'datesamemonth'
         65        SEND_VAR                                                 !1
         66        SEND_VAL                                                 12
         67        SEND_VAL                                                 '%2B'
         68        DO_FCALL                                      0  $27     
         69        CONCAT                                           ~28     ~26, $27
         70        CONCAT                                           ~29     ~28, '%0A'
         71        ECHO                                                     ~29
   43    72        PRE_INC                                                  !0
         73    >   IS_SMALLER_OR_EQUAL                                      !0, 12
         74      > JMPNZ                                                    ~31, ->53
   49    75    >   ECHO                                                     '%0A%0ATEST%3A+RANDOM+DAY+%28%2B1+month%29%0A'
   50    76        ASSIGN                                                   !0, 1
         77      > JMP                                                      ->97
   51    78    >   INIT_FCALL                                               'date'
         79        SEND_VAL                                                 'Y-m-'
         80        DO_ICALL                                         $33     
         81        INIT_FCALL                                               'rand'
         82        SEND_VAL                                                 1
         83        SEND_VAL                                                 27
         84        DO_ICALL                                         $34     
         85        CONCAT                                           ~35     $33, $34
         86        ASSIGN                                                   !1, ~35
   52    87        CONCAT                                           ~37     !1, '+----%3E+'
         88        INIT_FCALL                                               'datesamemonth'
         89        SEND_VAR                                                 !1
         90        SEND_VAL                                                 1
         91        SEND_VAL                                                 '%2B'
         92        DO_FCALL                                      0  $38     
         93        CONCAT                                           ~39     ~37, $38
         94        CONCAT                                           ~40     ~39, '%0A'
         95        ECHO                                                     ~40
   50    96        PRE_INC                                                  !0
         97    >   IS_SMALLER_OR_EQUAL                                      !0, 50
         98      > JMPNZ                                                    ~42, ->78
   55    99    >   ECHO                                                     '%0A%0ATEST%3A+RANDOM+DAY+%28-1+month%29%0A'
   56   100        ASSIGN                                                   !0, 1
        101      > JMP                                                      ->121
   57   102    >   INIT_FCALL                                               'date'
        103        SEND_VAL                                                 'Y-m-'
        104        DO_ICALL                                         $44     
        105        INIT_FCALL                                               'rand'
        106        SEND_VAL                                                 1
        107        SEND_VAL                                                 27
        108        DO_ICALL                                         $45     
        109        CONCAT                                           ~46     $44, $45
        110        ASSIGN                                                   !1, ~46
   58   111        CONCAT                                           ~48     !1, '+----%3E+'
        112        INIT_FCALL                                               'datesamemonth'
        113        SEND_VAR                                                 !1
        114        SEND_VAL                                                 1
        115        SEND_VAL                                                 '-'
        116        DO_FCALL                                      0  $49     
        117        CONCAT                                           ~50     ~48, $49
        118        CONCAT                                           ~51     ~50, '%0A'
        119        ECHO                                                     ~51
   56   120        PRE_INC                                                  !0
        121    >   IS_SMALLER_OR_EQUAL                                      !0, 50
        122      > JMPNZ                                                    ~53, ->102
   59   123    > > RETURN                                                   1

Function datesamemonth:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 43
Branch analysis from position: 25
2 jumps found. (Code = 43) Position 1 = 28, Position 2 = 35
Branch analysis from position: 28
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 = 41
Branch analysis from position: 41
2 jumps found. (Code = 43) Position 1 = 45, Position 2 = 47
Branch analysis from position: 45
1 jumps found. (Code = 42) Position 1 = 53
Branch analysis from position: 53
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 47
2 jumps found. (Code = 43) Position 1 = 50, Position 2 = 52
Branch analysis from position: 50
1 jumps found. (Code = 42) Position 1 = 53
Branch analysis from position: 53
Branch analysis from position: 52
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 41
Branch analysis from position: 41
Branch analysis from position: 35
2 jumps found. (Code = 43) Position 1 = 37, Position 2 = 39
Branch analysis from position: 37
1 jumps found. (Code = 42) Position 1 = 40
Branch analysis from position: 40
2 jumps found. (Code = 43) Position 1 = 45, Position 2 = 47
Branch analysis from position: 45
Branch analysis from position: 47
Branch analysis from position: 39
2 jumps found. (Code = 43) Position 1 = 45, Position 2 = 47
Branch analysis from position: 45
Branch analysis from position: 47
Branch analysis from position: 43
filename:       /in/hmcm6
function name:  DateSameMonth
number of ops:  64
compiled vars:  !0 = $date_iso, !1 = $add_sub_months, !2 = $operator, !3 = $mdate, !4 = $date, !5 = $d, !6 = $m, !7 = $y, !8 = $mod
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
          1        RECV_INIT                                        !1      1
          2        RECV_INIT                                        !2      '%2B'
    4     3        ASSIGN                                                   !3, <array>
    6     4        NEW                                              $10     'DateTime'
          5        SEND_VAR_EX                                              !0
          6        DO_FCALL                                      0          
          7        ASSIGN                                                   !4, $10
    7     8        INIT_METHOD_CALL                                         !4, 'format'
          9        SEND_VAL_EX                                              'd'
         10        DO_FCALL                                      0  $13     
         11        CAST                                          4  ~14     $13
         12        ASSIGN                                                   !5, ~14
    8    13        INIT_METHOD_CALL                                         !4, 'format'
         14        SEND_VAL_EX                                              'm'
         15        DO_FCALL                                      0  $16     
         16        CAST                                          4  ~17     $16
         17        ASSIGN                                                   !6, ~17
    9    18        INIT_METHOD_CALL                                         !4, 'format'
         19        SEND_VAL_EX                                              'Y'
         20        DO_FCALL                                      0  $19     
         21        CAST                                          4  ~20     $19
         22        ASSIGN                                                   !7, ~20
   11    23        IS_EQUAL                                                 !6, 2
         24      > JMPZ                                                     ~22, ->43
   12    25    >   MOD                                              ~24     !7, 4
         26        IS_IDENTICAL                                             ~24, 0
         27      > JMPZ                                                     ~25, ->35
         28    >   IS_SMALLER_OR_EQUAL                                      !5, 29
         29      > JMPZ                                                     ~26, ->32
         30    >   QM_ASSIGN                                        ~27     !5
         31      > JMP                                                      ->33
         32    >   QM_ASSIGN                                        ~27     29
         33    >   QM_ASSIGN                                        ~28     ~27
         34      > JMP                                                      ->41
         35    >   IS_SMALLER_OR_EQUAL                                      !5, 28
         36      > JMPZ                                                     ~29, ->39
         37    >   QM_ASSIGN                                        ~30     !5
         38      > JMP                                                      ->40
         39    >   QM_ASSIGN                                        ~30     28
         40    >   QM_ASSIGN                                        ~28     ~30
         41    >   ASSIGN_DIM                                               !3, !6
         42        OP_DATA                                                  ~28
   15    43    >   IS_EQUAL                                                 !5, 1
         44      > JMPZ                                                     ~31, ->47
   16    45    >   ASSIGN                                                   !8, 'first+day+of+'
   15    46      > JMP                                                      ->53
   18    47    >   FETCH_DIM_R                                      ~33     !3, !6
         48        IS_EQUAL                                                 !5, ~33
         49      > JMPZ                                                     ~34, ->52
   19    50    >   ASSIGN                                                   !8, 'last+day+of+'
   18    51      > JMP                                                      ->53
   22    52    >   ASSIGN                                                   !8, ''
   25    53    >   INIT_METHOD_CALL                                         !4, 'modify'
         54        CONCAT                                           ~37     !8, !2
         55        CONCAT                                           ~38     ~37, !1
         56        CONCAT                                           ~39     ~38, '+months'
         57        SEND_VAL_EX                                              ~39
         58        DO_FCALL                                      0          
   28    59        INIT_METHOD_CALL                                         !4, 'format'
         60        SEND_VAL_EX                                              'Y-m-d'
         61        DO_FCALL                                      0  $41     
         62      > RETURN                                                   $41
   29    63*     > RETURN                                                   null

End of function datesamemonth

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
147.61 ms | 989 KiB | 25 Q