3v4l.org

run code in 300+ PHP versions simultaneously
<?php $availablePieces = []; $bitfield = hex2bin(preg_replace('(\s)', '', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffe0')); $bytes = unpack('N*', $bitfield); foreach ($bytes as $index => $byte) { $i = $index - 1; // since pack is 1-indexed $availablePieces[($i * 8) + 0] = ($byte & 0b10000000) !== 0; $availablePieces[($i * 8) + 1] = ($byte & 0b01000000) !== 0; $availablePieces[($i * 8) + 2] = ($byte & 0b00100000) !== 0; $availablePieces[($i * 8) + 3] = ($byte & 0b00010000) !== 0; $availablePieces[($i * 8) + 4] = ($byte & 0b00001000) !== 0; $availablePieces[($i * 8) + 5] = ($byte & 0b00000100) !== 0; $availablePieces[($i * 8) + 6] = ($byte & 0b00000010) !== 0; $availablePieces[($i * 8) + 7] = ($byte & 0b00000001) !== 0; } var_dump($availablePieces);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 16, Position 2 = 69
Branch analysis from position: 16
2 jumps found. (Code = 78) Position 1 = 17, Position 2 = 69
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 69
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 69
filename:       /in/UcKI0
function name:  (null)
number of ops:  74
compiled vars:  !0 = $availablePieces, !1 = $bitfield, !2 = $bytes, !3 = $byte, !4 = $index, !5 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
    5     1        INIT_FCALL                                               'hex2bin'
          2        INIT_FCALL                                               'preg_replace'
          3        SEND_VAL                                                 '%28%5Cs%29'
          4        SEND_VAL                                                 ''
          5        SEND_VAL                                                 'ffffffff+%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffff%0A+++++++++++++++++++++ffffffe0'
          6        DO_ICALL                                         $7      
          7        SEND_VAR                                                 $7
          8        DO_ICALL                                         $8      
          9        ASSIGN                                                   !1, $8
   25    10        INIT_FCALL                                               'unpack'
         11        SEND_VAL                                                 'N%2A'
         12        SEND_VAR                                                 !1
         13        DO_ICALL                                         $10     
         14        ASSIGN                                                   !2, $10
   27    15      > FE_RESET_R                                       $12     !2, ->69
         16    > > FE_FETCH_R                                       ~13     $12, !3, ->69
         17    >   ASSIGN                                                   !4, ~13
   28    18        SUB                                              ~15     !4, 1
         19        ASSIGN                                                   !5, ~15
   29    20        MUL                                              ~17     !5, 8
         21        ADD                                              ~18     ~17, 0
         22        BW_AND                                           ~20     !3, 128
         23        IS_NOT_IDENTICAL                                 ~21     ~20, 0
         24        ASSIGN_DIM                                               !0, ~18
         25        OP_DATA                                                  ~21
   30    26        MUL                                              ~22     !5, 8
         27        ADD                                              ~23     ~22, 1
         28        BW_AND                                           ~25     !3, 64
         29        IS_NOT_IDENTICAL                                 ~26     ~25, 0
         30        ASSIGN_DIM                                               !0, ~23
         31        OP_DATA                                                  ~26
   31    32        MUL                                              ~27     !5, 8
         33        ADD                                              ~28     ~27, 2
         34        BW_AND                                           ~30     !3, 32
         35        IS_NOT_IDENTICAL                                 ~31     ~30, 0
         36        ASSIGN_DIM                                               !0, ~28
         37        OP_DATA                                                  ~31
   32    38        MUL                                              ~32     !5, 8
         39        ADD                                              ~33     ~32, 3
         40        BW_AND                                           ~35     !3, 16
         41        IS_NOT_IDENTICAL                                 ~36     ~35, 0
         42        ASSIGN_DIM                                               !0, ~33
         43        OP_DATA                                                  ~36
   33    44        MUL                                              ~37     !5, 8
         45        ADD                                              ~38     ~37, 4
         46        BW_AND                                           ~40     !3, 8
         47        IS_NOT_IDENTICAL                                 ~41     ~40, 0
         48        ASSIGN_DIM                                               !0, ~38
         49        OP_DATA                                                  ~41
   34    50        MUL                                              ~42     !5, 8
         51        ADD                                              ~43     ~42, 5
         52        BW_AND                                           ~45     !3, 4
         53        IS_NOT_IDENTICAL                                 ~46     ~45, 0
         54        ASSIGN_DIM                                               !0, ~43
         55        OP_DATA                                                  ~46
   35    56        MUL                                              ~47     !5, 8
         57        ADD                                              ~48     ~47, 6
         58        BW_AND                                           ~50     !3, 2
         59        IS_NOT_IDENTICAL                                 ~51     ~50, 0
         60        ASSIGN_DIM                                               !0, ~48
         61        OP_DATA                                                  ~51
   36    62        MUL                                              ~52     !5, 8
         63        ADD                                              ~53     ~52, 7
         64        BW_AND                                           ~55     !3, 1
         65        IS_NOT_IDENTICAL                                 ~56     ~55, 0
         66        ASSIGN_DIM                                               !0, ~53
         67        OP_DATA                                                  ~56
   27    68      > JMP                                                      ->16
         69    >   FE_FREE                                                  $12
   39    70        INIT_FCALL                                               'var_dump'
         71        SEND_VAR                                                 !0
         72        DO_ICALL                                                 
         73      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
132.27 ms | 1405 KiB | 21 Q