3v4l.org

run code in 300+ PHP versions simultaneously
<?php define('WARRIOR_OFFSET', 16); define('MAGE_OFFSET', 17); define('CLASS_MASK', ( 1 << WARRIOR_OFFSET ) | ( 1 << MAGE_OFFSET )); $bitmask = 8470543; $classMap = array( 0b00 => 'error', 0b01 => 'warrior', 0b10 => 'mage', 0b11 => 'seyan', ); $class = $bitmask & CLASS_MASK; $class = $class >> WARRIOR_OFFSET; $class_name = $classMap[$class]; print "$class_name\n";
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/7XEBQ
function name:  (null)
number of ops:  31
compiled vars:  !0 = $bitmask, !1 = $classMap, !2 = $class, !3 = $class_name
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                               'define'
          1        SEND_VAL                                                 'WARRIOR_OFFSET'
          2        SEND_VAL                                                 16
          3        DO_ICALL                                                 
    4     4        INIT_FCALL                                               'define'
          5        SEND_VAL                                                 'MAGE_OFFSET'
          6        SEND_VAL                                                 17
          7        DO_ICALL                                                 
    5     8        INIT_FCALL                                               'define'
          9        SEND_VAL                                                 'CLASS_MASK'
         10        FETCH_CONSTANT                                   ~6      'WARRIOR_OFFSET'
         11        SL                                               ~7      1, ~6
         12        FETCH_CONSTANT                                   ~8      'MAGE_OFFSET'
         13        SL                                               ~9      1, ~8
         14        BW_OR                                            ~10     ~7, ~9
         15        SEND_VAL                                                 ~10
         16        DO_ICALL                                                 
    7    17        ASSIGN                                                   !0, 8470543
    9    18        ASSIGN                                                   !1, <array>
   16    19        FETCH_CONSTANT                                   ~14     'CLASS_MASK'
         20        BW_AND                                           ~15     !0, ~14
         21        ASSIGN                                                   !2, ~15
   18    22        FETCH_CONSTANT                                   ~17     'WARRIOR_OFFSET'
         23        SR                                               ~18     !2, ~17
         24        ASSIGN                                                   !2, ~18
   20    25        FETCH_DIM_R                                      ~20     !1, !2
         26        ASSIGN                                                   !3, ~20
   22    27        NOP                                                      
         28        FAST_CONCAT                                      ~22     !3, '%0A'
         29        ECHO                                                     ~22
         30      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
155.29 ms | 1395 KiB | 15 Q