3v4l.org

run code in 500+ PHP versions simultaneously
<?php $a = [1]; foreach ((isset($a["key"]) ? [&$a["key"]] : [&$a])[0] as &$v) { var_dump($a); $v++; } var_dump($a); $a = [1]; $x = (isset($a["chunks"]) ? [&$a["chunks"]] : [&$a]); foreach ($x[0] as &$v) { var_dump($a); $v++; } var_dump($a);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 7
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
2 jumps found. (Code = 125) Position 1 = 11, Position 2 = 17
Branch analysis from position: 11
2 jumps found. (Code = 126) Position 1 = 12, Position 2 = 17
Branch analysis from position: 12
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 24, Position 2 = 28
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 30
Branch analysis from position: 30
2 jumps found. (Code = 125) Position 1 = 33, Position 2 = 39
Branch analysis from position: 33
2 jumps found. (Code = 126) Position 1 = 34, Position 2 = 39
Branch analysis from position: 34
1 jumps found. (Code = 42) Position 1 = 33
Branch analysis from position: 33
Branch analysis from position: 39
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 39
Branch analysis from position: 28
2 jumps found. (Code = 125) Position 1 = 33, Position 2 = 39
Branch analysis from position: 33
Branch analysis from position: 39
Branch analysis from position: 17
Branch analysis from position: 7
2 jumps found. (Code = 125) Position 1 = 11, Position 2 = 17
Branch analysis from position: 11
Branch analysis from position: 17
filename:       /in/8QBeN
function name:  (null)
number of ops:  44
compiled vars:  !0 = $a, !1 = $v, !2 = $x
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, <array>
          1        ISSET_ISEMPTY_DIM_OBJ                             0          !0, 'key'
          2      > JMPZ                                                         ~4, ->7
          3    >   FETCH_DIM_W                                          $5      !0, 'key'
          4        INIT_ARRAY                                           ~6      $5
          5        QM_ASSIGN                                            ~7      ~6
          6      > JMP                                                          ->9
          7    >   INIT_ARRAY                                           ~8      !0
          8        QM_ASSIGN                                            ~7      ~8
          9    >   FETCH_DIM_R                                          ~9      ~7, 0
         10      > FE_RESET_RW                                          $10     ~9, ->17
         11    > > FE_FETCH_RW                                                  $10, !1, ->17
         12    >   INIT_FCALL                                                   'var_dump'
         13        SEND_VAR                                                     !0
         14        DO_ICALL                                                     
         15        PRE_INC                                                      !1
         16      > JMP                                                          ->11
         17    >   FE_FREE                                                      $10
         18        INIT_FCALL                                                   'var_dump'
         19        SEND_VAR                                                     !0
         20        DO_ICALL                                                     
    5    21        ASSIGN                                                       !0, <array>
         22        ISSET_ISEMPTY_DIM_OBJ                             0          !0, 'chunks'
         23      > JMPZ                                                         ~15, ->28
         24    >   FETCH_DIM_W                                          $16     !0, 'chunks'
         25        INIT_ARRAY                                           ~17     $16
         26        QM_ASSIGN                                            ~18     ~17
         27      > JMP                                                          ->30
         28    >   INIT_ARRAY                                           ~19     !0
         29        QM_ASSIGN                                            ~18     ~19
         30    >   ASSIGN                                                       !2, ~18
         31        FETCH_DIM_W                                          $21     !2, 0
         32      > FE_RESET_RW                                          $22     $21, ->39
         33    > > FE_FETCH_RW                                                  $22, !1, ->39
         34    >   INIT_FCALL                                                   'var_dump'
         35        SEND_VAR                                                     !0
         36        DO_ICALL                                                     
         37        PRE_INC                                                      !1
         38      > JMP                                                          ->33
         39    >   FE_FREE                                                      $22
         40        INIT_FCALL                                                   'var_dump'
         41        SEND_VAR                                                     !0
         42        DO_ICALL                                                     
         43      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
153 ms | 2769 KiB | 9 Q