3v4l.org

run code in 300+ PHP versions simultaneously
<?php class A { public function b($c) { static $d = array(); if (empty($d)) { for ($i = 0; $i < 256; $i++) { $d[chr($i)] = $i; } } $e = strlen($c); $f = ''; if ($e % 2 !== 0) { $c .= ' '; } $g = $e >> 4 << 4; for ($i = 0; $i < $g; $i++) { $f .= pack('n8', ($d[$c[$i]] << 8) + $d[$c[++$i]], ($d[$c[++$i]] << 8) + $d[$c[++$i]], ($d[$c[++$i]] << 8) + $d[$c[++$i]], ($d[$c[++$i]] << 8) + $d[$c[++$i]], ($d[$c[++$i]] << 8) + $d[$c[++$i]], ($d[$c[++$i]] << 8) + $d[$c[++$i]], ($d[$c[++$i]] << 8) + $d[$c[++$i]], ($d[$c[++$i]] << 8) + $d[$c[++$i]] ); } for ($i; $i < $e; $i++) { $f .= pack('n', ($d[$c[$i]] << 8) + $d[$c[++$i]]); } return mb_convert_encoding($f, 'UTF-8', 'UCS-2BE'); } } $a = base64_encode("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nulla pharetra, sapien et elementum ultricies, tellus ante feugiat arcu, eget tempus massa magna id erat. Praesent faucibus tortor at est pharetra cursus. Etiam eleifend dui vel dolor lobortis, ut mattis tortor commodo. Cras rhoncus quis orci quis congue. Praesent lobortis lectus et aliquet ultrices. Pellentesque tristique quam magna, ac hendrerit purus malesuada laoreet. Suspendisse neque erat, commodo suscipit libero eu, ultricies gravida enim. Sed luctus lectus quis dignissim imperdiet. Sed ante sapien, bibendum et pellentesque eu, pretium volutpat magna. Etiam faucibus, mi vitae lobortis imperdiet, erat elit sodales ante, at condimentum nulla urna ac nulla."); $b = new A(); echo $b->b($a);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/7Pg8B
function name:  (null)
number of ops:  12
compiled vars:  !0 = $a, !1 = $b
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   35     0  E >   INIT_FCALL                                               'base64_encode'
          1        SEND_VAL                                                 'Lorem+ipsum+dolor+sit+amet%2C+consectetur+adipisicing+elit%2C+sed+do+eiusmod+tempor+incididunt+ut+labore+et+dolore+magna+aliqua.+Ut+enim+ad+minim+veniam%2C+quis+nostrud+exercitation+ullamco+laboris+nisi+ut+aliquip+ex+ea+commodo+consequat.+Duis+aute+irure+dolor+in+reprehenderit+in+voluptate+velit+esse+cillum+dolore+eu+fugiat+nulla+pariatur.+Excepteur+sint+occaecat+cupidatat+non+proident%2C+sunt+in+culpa+qui+officia+deserunt+mollit+anim+id+est+laborum.+Nulla+pharetra%2C+sapien+et+elementum+ultricies%2C+tellus+ante+feugiat+arcu%2C+eget+tempus+massa+magna+id+erat.+Praesent+faucibus+tortor+at+est+pharetra+cursus.+Etiam+eleifend+dui+vel+dolor+lobortis%2C+ut+mattis+tortor+commodo.+Cras+rhoncus+quis+orci+quis+congue.+Praesent+lobortis+lectus+et+aliquet+ultrices.+Pellentesque+tristique+quam+magna%2C+ac+hendrerit+purus+malesuada+laoreet.+Suspendisse+neque+erat%2C+commodo+suscipit+libero+eu%2C+ultricies+gravida+enim.+Sed+luctus+lectus+quis+dignissim+imperdiet.+Sed+ante+sapien%2C+bibendum+et+pellentesque+eu%2C+pretium+volutpat+magna.+Etiam+faucibus%2C+mi+vitae+lobortis+imperdiet%2C+erat+elit+sodales+ante%2C+at+condimentum+nulla+urna+ac+nulla.'
          2        DO_ICALL                                         $2      
          3        ASSIGN                                                   !0, $2
   37     4        NEW                                              $4      'A'
          5        DO_FCALL                                      0          
          6        ASSIGN                                                   !1, $4
   38     7        INIT_METHOD_CALL                                         !1, 'b'
          8        SEND_VAR_EX                                              !0
          9        DO_FCALL                                      0  $7      
         10        ECHO                                                     $7
         11      > RETURN                                                   1

Class A:
Function b:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 14
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
2 jumps found. (Code = 44) Position 1 = 14, Position 2 = 6
Branch analysis from position: 14
2 jumps found. (Code = 43) Position 1 = 20, Position 2 = 21
Branch analysis from position: 20
1 jumps found. (Code = 42) Position 1 = 102
Branch analysis from position: 102
2 jumps found. (Code = 44) Position 1 = 104, Position 2 = 26
Branch analysis from position: 104
1 jumps found. (Code = 42) Position 1 = 118
Branch analysis from position: 118
2 jumps found. (Code = 44) Position 1 = 120, Position 2 = 105
Branch analysis from position: 120
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 105
2 jumps found. (Code = 44) Position 1 = 120, Position 2 = 105
Branch analysis from position: 120
Branch analysis from position: 105
Branch analysis from position: 26
2 jumps found. (Code = 44) Position 1 = 104, Position 2 = 26
Branch analysis from position: 104
Branch analysis from position: 26
Branch analysis from position: 21
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 14, Position 2 = 6
Branch analysis from position: 14
Branch analysis from position: 6
Branch analysis from position: 14
filename:       /in/7Pg8B
function name:  b
number of ops:  127
compiled vars:  !0 = $c, !1 = $d, !2 = $i, !3 = $e, !4 = $f, !5 = $g
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   RECV                                             !0      
    5     1        BIND_STATIC                                              !1
    6     2        ISSET_ISEMPTY_CV                                         !1
          3      > JMPZ                                                     ~6, ->14
    7     4    >   ASSIGN                                                   !2, 0
          5      > JMP                                                      ->12
    8     6    >   INIT_FCALL                                               'chr'
          7        SEND_VAR                                                 !2
          8        DO_ICALL                                         $8      
          9        ASSIGN_DIM                                               !1, $8
         10        OP_DATA                                                  !2
    7    11        PRE_INC                                                  !2
         12    >   IS_SMALLER                                               !2, 256
         13      > JMPNZ                                                    ~11, ->6
   11    14    >   STRLEN                                           ~12     !0
         15        ASSIGN                                                   !3, ~12
   12    16        ASSIGN                                                   !4, ''
   13    17        MOD                                              ~15     !3, 2
         18        IS_NOT_IDENTICAL                                         ~15, 0
         19      > JMPZ                                                     ~16, ->21
         20    >   ASSIGN_OP                                     8          !0, '+'
   14    21    >   SR                                               ~18     !3, 4
         22        SL                                               ~19     ~18, 4
         23        ASSIGN                                                   !5, ~19
   15    24        ASSIGN                                                   !2, 0
         25      > JMP                                                      ->102
   16    26    >   INIT_FCALL                                               'pack'
         27        SEND_VAL                                                 'n8'
   17    28        FETCH_DIM_R                                      ~22     !0, !2
         29        FETCH_DIM_R                                      ~23     !1, ~22
         30        SL                                               ~24     ~23, 8
         31        PRE_INC                                          ~25     !2
         32        FETCH_DIM_R                                      ~26     !0, ~25
         33        FETCH_DIM_R                                      ~27     !1, ~26
         34        ADD                                              ~28     ~24, ~27
         35        SEND_VAL                                                 ~28
   18    36        PRE_INC                                          ~29     !2
         37        FETCH_DIM_R                                      ~30     !0, ~29
         38        FETCH_DIM_R                                      ~31     !1, ~30
         39        SL                                               ~32     ~31, 8
         40        PRE_INC                                          ~33     !2
         41        FETCH_DIM_R                                      ~34     !0, ~33
         42        FETCH_DIM_R                                      ~35     !1, ~34
         43        ADD                                              ~36     ~32, ~35
         44        SEND_VAL                                                 ~36
   19    45        PRE_INC                                          ~37     !2
         46        FETCH_DIM_R                                      ~38     !0, ~37
         47        FETCH_DIM_R                                      ~39     !1, ~38
         48        SL                                               ~40     ~39, 8
         49        PRE_INC                                          ~41     !2
         50        FETCH_DIM_R                                      ~42     !0, ~41
         51        FETCH_DIM_R                                      ~43     !1, ~42
         52        ADD                                              ~44     ~40, ~43
         53        SEND_VAL                                                 ~44
   20    54        PRE_INC                                          ~45     !2
         55        FETCH_DIM_R                                      ~46     !0, ~45
         56        FETCH_DIM_R                                      ~47     !1, ~46
         57        SL                                               ~48     ~47, 8
         58        PRE_INC                                          ~49     !2
         59        FETCH_DIM_R                                      ~50     !0, ~49
         60        FETCH_DIM_R                                      ~51     !1, ~50
         61        ADD                                              ~52     ~48, ~51
         62        SEND_VAL                                                 ~52
   21    63        PRE_INC                                          ~53     !2
         64        FETCH_DIM_R                                      ~54     !0, ~53
         65        FETCH_DIM_R                                      ~55     !1, ~54
         66        SL                                               ~56     ~55, 8
         67        PRE_INC                                          ~57     !2
         68        FETCH_DIM_R                                      ~58     !0, ~57
         69        FETCH_DIM_R                                      ~59     !1, ~58
         70        ADD                                              ~60     ~56, ~59
         71        SEND_VAL                                                 ~60
   22    72        PRE_INC                                          ~61     !2
         73        FETCH_DIM_R                                      ~62     !0, ~61
         74        FETCH_DIM_R                                      ~63     !1, ~62
         75        SL                                               ~64     ~63, 8
         76        PRE_INC                                          ~65     !2
         77        FETCH_DIM_R                                      ~66     !0, ~65
         78        FETCH_DIM_R                                      ~67     !1, ~66
         79        ADD                                              ~68     ~64, ~67
         80        SEND_VAL                                                 ~68
   23    81        PRE_INC                                          ~69     !2
         82        FETCH_DIM_R                                      ~70     !0, ~69
         83        FETCH_DIM_R                                      ~71     !1, ~70
         84        SL                                               ~72     ~71, 8
         85        PRE_INC                                          ~73     !2
         86        FETCH_DIM_R                                      ~74     !0, ~73
         87        FETCH_DIM_R                                      ~75     !1, ~74
         88        ADD                                              ~76     ~72, ~75
         89        SEND_VAL                                                 ~76
   24    90        PRE_INC                                          ~77     !2
         91        FETCH_DIM_R                                      ~78     !0, ~77
         92        FETCH_DIM_R                                      ~79     !1, ~78
         93        SL                                               ~80     ~79, 8
         94        PRE_INC                                          ~81     !2
         95        FETCH_DIM_R                                      ~82     !0, ~81
         96        FETCH_DIM_R                                      ~83     !1, ~82
         97        ADD                                              ~84     ~80, ~83
         98        SEND_VAL                                                 ~84
         99        DO_ICALL                                         $85     
        100        ASSIGN_OP                                     8          !4, $85
   15   101        PRE_INC                                                  !2
        102    >   IS_SMALLER                                               !2, !5
        103      > JMPNZ                                                    ~88, ->26
   28   104    > > JMP                                                      ->118
   29   105    >   INIT_FCALL                                               'pack'
        106        SEND_VAL                                                 'n'
        107        FETCH_DIM_R                                      ~89     !0, !2
        108        FETCH_DIM_R                                      ~90     !1, ~89
        109        SL                                               ~91     ~90, 8
        110        PRE_INC                                          ~92     !2
        111        FETCH_DIM_R                                      ~93     !0, ~92
        112        FETCH_DIM_R                                      ~94     !1, ~93
        113        ADD                                              ~95     ~91, ~94
        114        SEND_VAL                                                 ~95
        115        DO_ICALL                                         $96     
        116        ASSIGN_OP                                     8          !4, $96
   28   117        PRE_INC                                                  !2
        118    >   IS_SMALLER                                               !2, !3
        119      > JMPNZ                                                    ~99, ->105
   31   120    >   INIT_FCALL                                               'mb_convert_encoding'
        121        SEND_VAR                                                 !4
        122        SEND_VAL                                                 'UTF-8'
        123        SEND_VAL                                                 'UCS-2BE'
        124        DO_ICALL                                         $100    
        125      > RETURN                                                   $100
   32   126*     > RETURN                                                   null

End of function b

End of class A.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
170.21 ms | 1408 KiB | 21 Q