3v4l.org

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

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
193.92 ms | 1392 KiB | 15 Q