3v4l.org

run code in 300+ PHP versions simultaneously
<?php $_GET['aaa'] = "1a"; $a=0; $b=0; $c=0; if (isset($_GET['aaa'])) { $aaa = $_GET['aaa']; $aaa=="1"?die("1"):NULL; switch ($aaa) { case 0: case 1: $a=1; break; } } var_dump($a); $_GET['bbb'] = '{"ccc":"2018a","ddd":[["123"],"233"]}'; $bbb=(array)json_decode(@$_GET['bbb']); if(is_array($bbb)){ is_numeric(@$bbb["ccc"])?die("2"):NULL; if(@$bbb["ccc"]){ ($bbb["ccc"]>2017)?$b=1:NULL; } if(is_array(@$bbb["ddd"])){ if(count($bbb["ddd"])!==2 OR !is_array($bbb["ddd"][0])) die("3"); $eee = array_search("XMAN", $bbb["ddd"]); $eee===false?die("4"):NULL; foreach($bbb["ddd"] as $key=>$val){ $val==="XMAN"?die("5"):NULL; } $c=1; } } else { echo 'r'; } if($a && $b && $c){ echo 'Yes'; } ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 26
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 17
Branch analysis from position: 14
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 17
2 jumps found. (Code = 44) Position 1 = 21, Position 2 = 24
Branch analysis from position: 21
2 jumps found. (Code = 44) Position 1 = 23, Position 2 = 24
Branch analysis from position: 23
1 jumps found. (Code = 42) Position 1 = 26
Branch analysis from position: 26
2 jumps found. (Code = 43) Position 1 = 43, Position 2 = 111
Branch analysis from position: 43
2 jumps found. (Code = 43) Position 1 = 50, Position 2 = 53
Branch analysis from position: 50
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 53
2 jumps found. (Code = 43) Position 1 = 59, Position 2 = 67
Branch analysis from position: 59
2 jumps found. (Code = 43) Position 1 = 62, Position 2 = 65
Branch analysis from position: 62
1 jumps found. (Code = 42) Position 1 = 66
Branch analysis from position: 66
2 jumps found. (Code = 43) Position 1 = 72, Position 2 = 110
Branch analysis from position: 72
2 jumps found. (Code = 47) Position 1 = 76, Position 2 = 81
Branch analysis from position: 76
2 jumps found. (Code = 43) Position 1 = 82, Position 2 = 83
Branch analysis from position: 82
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 83
2 jumps found. (Code = 43) Position 1 = 91, Position 2 = 94
Branch analysis from position: 91
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 94
2 jumps found. (Code = 77) Position 1 = 98, Position 2 = 108
Branch analysis from position: 98
2 jumps found. (Code = 78) Position 1 = 99, Position 2 = 108
Branch analysis from position: 99
2 jumps found. (Code = 43) Position 1 = 102, Position 2 = 105
Branch analysis from position: 102
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 105
1 jumps found. (Code = 42) Position 1 = 98
Branch analysis from position: 98
Branch analysis from position: 108
1 jumps found. (Code = 42) Position 1 = 112
Branch analysis from position: 112
2 jumps found. (Code = 46) Position 1 = 113, Position 2 = 114
Branch analysis from position: 113
2 jumps found. (Code = 46) Position 1 = 115, Position 2 = 116
Branch analysis from position: 115
2 jumps found. (Code = 43) Position 1 = 117, Position 2 = 118
Branch analysis from position: 117
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 118
Branch analysis from position: 116
Branch analysis from position: 114
Branch analysis from position: 108
Branch analysis from position: 81
Branch analysis from position: 110
Branch analysis from position: 65
2 jumps found. (Code = 43) Position 1 = 72, Position 2 = 110
Branch analysis from position: 72
Branch analysis from position: 110
Branch analysis from position: 67
Branch analysis from position: 111
2 jumps found. (Code = 46) Position 1 = 113, Position 2 = 114
Branch analysis from position: 113
Branch analysis from position: 114
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 26
Branch analysis from position: 26
Branch analysis from position: 24
Branch analysis from position: 26
filename:       /in/ZGvMJ
function name:  (null)
number of ops:  119
compiled vars:  !0 = $a, !1 = $b, !2 = $c, !3 = $aaa, !4 = $bbb, !5 = $eee, !6 = $val, !7 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   FETCH_W                      global              $8      '_GET'
          1        ASSIGN_DIM                                               $8, 'aaa'
          2        OP_DATA                                                  '1a'
    5     3        ASSIGN                                                   !0, 0
    6     4        ASSIGN                                                   !1, 0
    7     5        ASSIGN                                                   !2, 0
    8     6        FETCH_IS                                         ~13     '_GET'
          7        ISSET_ISEMPTY_DIM_OBJ                         0          ~13, 'aaa'
          8      > JMPZ                                                     ~14, ->26
   10     9    >   FETCH_R                      global              ~15     '_GET'
         10        FETCH_DIM_R                                      ~16     ~15, 'aaa'
         11        ASSIGN                                                   !3, ~16
   11    12        IS_EQUAL                                                 !3, '1'
         13      > JMPZ                                                     ~18, ->17
         14    > > EXIT                                                     '1'
         15*       QM_ASSIGN                                        ~19     <true>
         16*       JMP                                                      ->18
         17    >   QM_ASSIGN                                        ~19     null
         18        FREE                                                     ~19
   14    19        IS_EQUAL                                                 !3, 0
         20      > JMPNZ                                                    ~20, ->24
   15    21    >   IS_EQUAL                                                 !3, 1
         22      > JMPNZ                                                    ~20, ->24
         23    > > JMP                                                      ->26
   16    24    >   ASSIGN                                                   !0, 1
   17    25      > JMP                                                      ->26
   20    26    >   INIT_FCALL                                               'var_dump'
         27        SEND_VAR                                                 !0
         28        DO_ICALL                                                 
   22    29        FETCH_W                      global              $23     '_GET'
         30        ASSIGN_DIM                                               $23, 'bbb'
         31        OP_DATA                                                  '%7B%22ccc%22%3A%222018a%22%2C%22ddd%22%3A%5B%5B%22123%22%5D%2C%22233%22%5D%7D'
   24    32        INIT_FCALL                                               'json_decode'
         33        BEGIN_SILENCE                                    ~25     
         34        FETCH_R                      global              ~26     '_GET'
         35        FETCH_DIM_R                                      ~27     ~26, 'bbb'
         36        END_SILENCE                                              ~25
         37        SEND_VAL                                                 ~27
         38        DO_ICALL                                         $28     
         39        CAST                                          7  ~29     $28
         40        ASSIGN                                                   !4, ~29
   25    41        TYPE_CHECK                                  128          !4
         42      > JMPZ                                                     ~31, ->111
   26    43    >   INIT_FCALL                                               'is_numeric'
         44        BEGIN_SILENCE                                    ~32     
         45        FETCH_DIM_R                                      ~33     !4, 'ccc'
         46        END_SILENCE                                              ~32
         47        SEND_VAL                                                 ~33
         48        DO_ICALL                                         $34     
         49      > JMPZ                                                     $34, ->53
         50    > > EXIT                                                     '2'
         51*       QM_ASSIGN                                        ~35     <true>
         52*       JMP                                                      ->54
         53    >   QM_ASSIGN                                        ~35     null
         54        FREE                                                     ~35
   27    55        BEGIN_SILENCE                                    ~36     
         56        FETCH_DIM_R                                      ~37     !4, 'ccc'
         57        END_SILENCE                                              ~36
         58      > JMPZ                                                     ~37, ->67
   28    59    >   FETCH_DIM_R                                      ~38     !4, 'ccc'
         60        IS_SMALLER                                               2017, ~38
         61      > JMPZ                                                     ~39, ->65
         62    >   ASSIGN                                           ~40     !1, 1
         63        QM_ASSIGN                                        ~41     ~40
         64      > JMP                                                      ->66
         65    >   QM_ASSIGN                                        ~41     null
         66    >   FREE                                                     ~41
   30    67    >   BEGIN_SILENCE                                    ~42     
         68        FETCH_DIM_R                                      ~43     !4, 'ddd'
         69        END_SILENCE                                              ~42
         70        TYPE_CHECK                                  128          ~43
         71      > JMPZ                                                     ~44, ->110
   31    72    >   FETCH_DIM_R                                      ~45     !4, 'ddd'
         73        COUNT                                            ~46     ~45
         74        IS_NOT_IDENTICAL                                 ~47     ~46, 2
         75      > JMPNZ_EX                                         ~47     ~47, ->81
         76    >   FETCH_DIM_R                                      ~48     !4, 'ddd'
         77        FETCH_DIM_R                                      ~49     ~48, 0
         78        TYPE_CHECK                                  128  ~50     ~49
         79        BOOL_NOT                                         ~51     ~50
         80        BOOL                                             ~47     ~51
         81    > > JMPZ                                                     ~47, ->83
         82    > > EXIT                                                     '3'
   32    83    >   INIT_FCALL                                               'array_search'
         84        SEND_VAL                                                 'XMAN'
         85        FETCH_DIM_R                                      ~52     !4, 'ddd'
         86        SEND_VAL                                                 ~52
         87        DO_ICALL                                         $53     
         88        ASSIGN                                                   !5, $53
   33    89        TYPE_CHECK                                    4          !5
         90      > JMPZ                                                     ~55, ->94
         91    > > EXIT                                                     '4'
         92*       QM_ASSIGN                                        ~56     <true>
         93*       JMP                                                      ->95
         94    >   QM_ASSIGN                                        ~56     null
         95        FREE                                                     ~56
   34    96        FETCH_DIM_R                                      ~57     !4, 'ddd'
         97      > FE_RESET_R                                       $58     ~57, ->108
         98    > > FE_FETCH_R                                       ~59     $58, !6, ->108
         99    >   ASSIGN                                                   !7, ~59
   35   100        IS_IDENTICAL                                             !6, 'XMAN'
        101      > JMPZ                                                     ~61, ->105
        102    > > EXIT                                                     '5'
        103*       QM_ASSIGN                                        ~62     <true>
        104*       JMP                                                      ->106
        105    >   QM_ASSIGN                                        ~62     null
        106        FREE                                                     ~62
   34   107      > JMP                                                      ->98
        108    >   FE_FREE                                                  $58
   37   109        ASSIGN                                                   !2, 1
        110    > > JMP                                                      ->112
   40   111    >   ECHO                                                     'r'
   42   112    > > JMPZ_EX                                          ~64     !0, ->114
        113    >   BOOL                                             ~64     !1
        114    > > JMPZ_EX                                          ~64     ~64, ->116
        115    >   BOOL                                             ~64     !2
        116    > > JMPZ                                                     ~64, ->118
   43   117    >   ECHO                                                     'Yes'
   45   118    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
166.17 ms | 1408 KiB | 21 Q