3v4l.org

run code in 300+ PHP versions simultaneously
<?php foreach(["a"=>5,"b"=>6] as $k=>$v){ echo "$k $v"; } /* Wait, what? A parse error? Why, you might ask? (int) is a special case in the lexer. Turns out that casts are lexed specially. Why? Probably to stop the type names being reserved words. That worked out spectacularly, didn't it. This has been around since at least PHP 3. */
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 1, Position 2 = 8
Branch analysis from position: 1
2 jumps found. (Code = 78) Position 1 = 2, Position 2 = 8
Branch analysis from position: 2
1 jumps found. (Code = 42) Position 1 = 1
Branch analysis from position: 1
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
filename:       /in/ss72G
function name:  (null)
number of ops:  10
compiled vars:  !0 = $v, !1 = $k
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E > > FE_RESET_R                                       $2      <array>, ->8
          1    > > FE_FETCH_R                                       ~3      $2, !0, ->8
          2    >   ASSIGN                                                   !1, ~3
    4     3        ROPE_INIT                                     3  ~6      !1
          4        ROPE_ADD                                      1  ~6      ~6, '+'
          5        ROPE_END                                      2  ~5      ~6, !0
          6        ECHO                                                     ~5
    3     7      > JMP                                                      ->1
          8    >   FE_FREE                                                  $2
   13     9      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
154.03 ms | 1393 KiB | 13 Q