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 = 44, Position 2 = 80
Branch analysis from position: 44
2 jumps found. (Code = 78) Position 1 = 45, Position 2 = 80
Branch analysis from position: 45
2 jumps found. (Code = 43) Position 1 = 56, Position 2 = 58
Branch analysis from position: 56
1 jumps found. (Code = 42) Position 1 = 59
Branch analysis from position: 59
2 jumps found. (Code = 43) Position 1 = 62, Position 2 = 64
Branch analysis from position: 62
1 jumps found. (Code = 42) Position 1 = 65
Branch analysis from position: 65
2 jumps found. (Code = 43) Position 1 = 78, Position 2 = 79
Branch analysis from position: 78
1 jumps found. (Code = 42) Position 1 = 44
Branch analysis from position: 44
Branch analysis from position: 79
Branch analysis from position: 64
2 jumps found. (Code = 43) Position 1 = 78, Position 2 = 79
Branch analysis from position: 78
Branch analysis from position: 79
Branch analysis from position: 58
2 jumps found. (Code = 43) Position 1 = 62, Position 2 = 64
Branch analysis from position: 62
Branch analysis from position: 64
Branch analysis from position: 80
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 80
filename:       /in/sGEe2
function name:  (null)
number of ops:  90
compiled vars:  !0 = $utcUnixTimestamp, !1 = $checks, !2 = $total, !3 = $failed, !4 = $check, !5 = $label, !6 = $initTimezone, !7 = $constructor, !8 = $setTimestamp, !9 = $expected, !10 = $expectedOffset
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   INIT_FCALL                                               'error_reporting'
          1        SEND_VAL                                                 32767
          2        DO_ICALL                                                 
   52     3        ASSIGN                                                   !0, 1712171982
   56     4        INIT_ARRAY                                       ~13     !0, 'constructor'
          5        ADD_ARRAY_ELEMENT                                ~13     null, 'setTimestamp'
   58     6        ADD_ARRAY_ELEMENT                                ~13     'UTC', 'initTimezone'
   59     7        ADD_ARRAY_ELEMENT                                ~13     'Wed%2C+03+Apr+2024+19%3A19%3A42+%2B0000', 'expected'
   60     8        ADD_ARRAY_ELEMENT                                ~13     0, 'expectedOffset'
          9        INIT_ARRAY                                       ~14     ~13
   56    10        INIT_ARRAY                                       ~15     null, 'constructor'
   64    11        ADD_ARRAY_ELEMENT                                ~15     !0, 'setTimestamp'
   65    12        ADD_ARRAY_ELEMENT                                ~15     'UTC', 'initTimezone'
   66    13        ADD_ARRAY_ELEMENT                                ~15     'Wed%2C+03+Apr+2024+19%3A19%3A42+%2B0000', 'expected'
   67    14        ADD_ARRAY_ELEMENT                                ~15     0, 'expectedOffset'
         15        ADD_ARRAY_ELEMENT                                ~14     ~15
   71    16        INIT_ARRAY                                       ~16     !0, 'constructor'
   56    17        ADD_ARRAY_ELEMENT                                ~16     null, 'setTimestamp'
   73    18        ADD_ARRAY_ELEMENT                                ~16     'Europe%2FBerlin', 'initTimezone'
   74    19        ADD_ARRAY_ELEMENT                                ~16     'Wed%2C+03+Apr+2024+19%3A19%3A42+%2B0000', 'expected'
   75    20        ADD_ARRAY_ELEMENT                                ~16     0, 'expectedOffset'
         21        ADD_ARRAY_ELEMENT                                ~14     ~16
   56    22        INIT_ARRAY                                       ~17     null, 'constructor'
   79    23        ADD_ARRAY_ELEMENT                                ~17     !0, 'setTimestamp'
   80    24        ADD_ARRAY_ELEMENT                                ~17     'Europe%2FBerlin', 'initTimezone'
   81    25        ADD_ARRAY_ELEMENT                                ~17     'Wed%2C+03+Apr+2024+21%3A19%3A42+%2B0200', 'expected'
   82    26        ADD_ARRAY_ELEMENT                                ~17     7200, 'expectedOffset'
         27        ADD_ARRAY_ELEMENT                                ~14     ~17
   86    28        INIT_ARRAY                                       ~18     !0, 'constructor'
   56    29        ADD_ARRAY_ELEMENT                                ~18     null, 'setTimestamp'
   88    30        ADD_ARRAY_ELEMENT                                ~18     'Canada%2FAtlantic', 'initTimezone'
   89    31        ADD_ARRAY_ELEMENT                                ~18     'Wed%2C+03+Apr+2024+19%3A19%3A42+%2B0000', 'expected'
   90    32        ADD_ARRAY_ELEMENT                                ~18     0, 'expectedOffset'
         33        ADD_ARRAY_ELEMENT                                ~14     ~18
   56    34        INIT_ARRAY                                       ~19     null, 'constructor'
   94    35        ADD_ARRAY_ELEMENT                                ~19     !0, 'setTimestamp'
   95    36        ADD_ARRAY_ELEMENT                                ~19     'Canada%2FAtlantic', 'initTimezone'
   96    37        ADD_ARRAY_ELEMENT                                ~19     'Wed%2C+03+Apr+2024+16%3A19%3A42+-0300', 'expected'
   56    38        ADD_ARRAY_ELEMENT                                ~19     -10800, 'expectedOffset'
         39        ADD_ARRAY_ELEMENT                                ~14     ~19
   53    40        ASSIGN                                                   !1, ~14
  102    41        ASSIGN                                                   !2, 0
  103    42        ASSIGN                                                   !3, 0
  104    43      > FE_RESET_R                                       $23     !1, ->80
         44    > > FE_FETCH_R                                               $23, !4, ->80
  105    45    >   PRE_INC                                                  !2
  106    46        INIT_FCALL                                               'extract'
         47        SEND_REF                                                 !4
         48        SEND_VAL                                                 0
         49        DO_ICALL                                                 
  107    50        INIT_FCALL                                               'sprintf'
  108    51        SEND_VAL                                                 '%23%25s+TZ%3A+%25s+CONSTRUCTOR%3A+%25s+SETTIMESTAMP%3A+%25s'
  109    52        SEND_VAR                                                 !2
  110    53        SEND_VAR                                                 !6
  111    54        TYPE_CHECK                                    2          !7
         55      > JMPZ                                                     ~26, ->58
         56    >   QM_ASSIGN                                        ~27     'N'
         57      > JMP                                                      ->59
         58    >   QM_ASSIGN                                        ~27     'Y'
         59    >   SEND_VAL                                                 ~27
  112    60        TYPE_CHECK                                    2          !8
         61      > JMPZ                                                     ~28, ->64
         62    >   QM_ASSIGN                                        ~29     'N'
         63      > JMP                                                      ->65
         64    >   QM_ASSIGN                                        ~29     'Y'
         65    >   SEND_VAL                                                 ~29
  107    66        DO_ICALL                                         $30     
         67        ASSIGN                                                   !5, $30
  114    68        INIT_FCALL                                               'check'
         69        SEND_VAR                                                 !5
         70        SEND_VAR                                                 !7
         71        SEND_VAR                                                 !8
         72        SEND_VAR                                                 !6
         73        SEND_VAR                                                 !9
         74        SEND_VAR                                                 !10
         75        DO_FCALL                                      0  $32     
         76        BOOL_NOT                                         ~33     $32
         77      > JMPZ                                                     ~33, ->79
  115    78    >   PRE_INC                                                  !3
  104    79    > > JMP                                                      ->44
         80    >   FE_FREE                                                  $23
  119    81        ECHO                                                     '%0A'
  120    82        CONCAT                                           ~35     'TOTAL.%3A+', !2
         83        CONCAT                                           ~36     ~35, '%0A'
         84        ECHO                                                     ~36
  121    85        CONCAT                                           ~37     'FAILED%3A+', !3
         86        CONCAT                                           ~38     ~37, '%0A'
         87        ECHO                                                     ~38
  122    88        ECHO                                                     '%0A'
  123    89      > RETURN                                                   1

Function check:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 15
Branch analysis from position: 11
1 jumps found. (Code = 42) Position 1 = 20
Branch analysis from position: 20
2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 27
Branch analysis from position: 23
2 jumps found. (Code = 46) Position 1 = 36, Position 2 = 38
Branch analysis from position: 36
2 jumps found. (Code = 46) Position 1 = 39, Position 2 = 47
Branch analysis from position: 39
2 jumps found. (Code = 43) Position 1 = 68, Position 2 = 70
Branch analysis from position: 68
1 jumps found. (Code = 42) Position 1 = 71
Branch analysis from position: 71
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 70
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 47
Branch analysis from position: 38
Branch analysis from position: 27
Branch analysis from position: 15
2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 27
Branch analysis from position: 23
Branch analysis from position: 27
filename:       /in/sGEe2
function name:  check
number of ops:  80
compiled vars:  !0 = $label, !1 = $constructor, !2 = $setTimestamp, !3 = $initTimezone, !4 = $expected, !5 = $expectedOffset, !6 = $dt, !7 = $formatted, !8 = $dtOffset, !9 = $valid
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    7     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
          3        RECV                                             !3      
          4        RECV                                             !4      
          5        RECV                                             !5      
   16     6        INIT_FCALL                                               'date_default_timezone_set'
          7        SEND_VAR                                                 !3
          8        DO_ICALL                                                 
   18     9        TYPE_CHECK                                    2          !1
         10      > JMPZ                                                     ~11, ->15
   19    11    >   NEW                                              $12     'DateTimeImmutable'
         12        DO_FCALL                                      0          
         13        QM_ASSIGN                                        ~14     $12
         14      > JMP                                                      ->20
   20    15    >   NEW                                              $15     'DateTimeImmutable'
         16        CONCAT                                           ~16     '%40', !1
         17        SEND_VAL_EX                                              ~16
         18        DO_FCALL                                      0          
         19        QM_ASSIGN                                        ~14     $15
   18    20    >   ASSIGN                                                   !6, ~14
   21    21        TYPE_CHECK                                  1020          !2
         22      > JMPZ                                                     ~19, ->27
   22    23    >   INIT_METHOD_CALL                                         !6, 'setTimestamp'
         24        SEND_VAR_EX                                              !2
         25        DO_FCALL                                      0  $20     
         26        ASSIGN                                                   !6, $20
   25    27    >   INIT_METHOD_CALL                                         !6, 'format'
         28        SEND_VAL_EX                                              'D%2C+d+M+Y+H%3Ai%3As+O'
         29        DO_FCALL                                      0  $22     
         30        ASSIGN                                                   !7, $22
   26    31        INIT_METHOD_CALL                                         !6, 'getOffset'
         32        DO_FCALL                                      0  $24     
         33        ASSIGN                                                   !8, $24
   28    34        IS_IDENTICAL                                     ~26     !7, !4
         35      > JMPZ_EX                                          ~26     ~26, ->38
   29    36    >   IS_IDENTICAL                                     ~27     !8, !5
         37        BOOL                                             ~26     ~27
         38    > > JMPZ_EX                                          ~26     ~26, ->47
   30    39    >   INIT_METHOD_CALL                                         !6, 'getTimestamp'
         40        DO_FCALL                                      0  $28     
         41        COALESCE                                         ~29     !2
         42        COALESCE                                         ~30     !1
         43        QM_ASSIGN                                        ~30     ''
         44        QM_ASSIGN                                        ~29     ~30
         45        IS_IDENTICAL                                     ~31     $28, ~29
         46        BOOL                                             ~26     ~31
   27    47    >   ASSIGN                                                   !9, ~26
   33    48        ECHO                                                     '--------------------------------------------------------------%0A'
   34    49        CONCAT                                           ~33     'LABEL.....%3A+', !0
         50        CONCAT                                           ~34     ~33, '%0A'
         51        ECHO                                                     ~34
   35    52        CONCAT                                           ~35     'INIT_TZ...%3A+', !3
         53        CONCAT                                           ~36     ~35, '%0A'
         54        ECHO                                                     ~36
   36    55        CONCAT                                           ~37     'DT_OFFSET.%3A+', !8
         56        CONCAT                                           ~38     ~37, '%0A'
         57        ECHO                                                     ~38
   37    58        CONCAT                                           ~39     'EXP_OFFSET%3A+', !5
         59        CONCAT                                           ~40     ~39, '%0A'
         60        ECHO                                                     ~40
   38    61        CONCAT                                           ~41     'EXPECTED..%3A+', !4
         62        CONCAT                                           ~42     ~41, '%0A'
         63        ECHO                                                     ~42
   39    64        CONCAT                                           ~43     'FORMATTED.%3A+', !7
         65        CONCAT                                           ~44     ~43, '%0A'
         66        ECHO                                                     ~44
   40    67      > JMPZ                                                     !9, ->70
         68    >   QM_ASSIGN                                        ~45     'Y'
         69      > JMP                                                      ->71
         70    >   QM_ASSIGN                                        ~45     'N'
         71    >   CONCAT                                           ~46     'IS_VALID..%3A+', ~45
         72        CONCAT                                           ~47     ~46, '%0A'
         73        ECHO                                                     ~47
   41    74        ECHO                                                     '--------------------------------------------------------------%0A'
   42    75        ECHO                                                     '%0A'
   44    76        VERIFY_RETURN_TYPE                                       !9
         77      > RETURN                                                   !9
   45    78*       VERIFY_RETURN_TYPE                                       
         79*     > RETURN                                                   null

End of function check

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
163.47 ms | 989 KiB | 18 Q