3v4l.org

run code in 500+ PHP versions simultaneously
<?php function ordutf8_step1(string $char) : int { $code = ord(substr($char, 0, 1)); if ($code >= 128) { if ($code < 224) $bytesnumber = 2; else if ($code < 240) $bytesnumber = 3; else if ($code < 248) $bytesnumber = 4; $codetemp = $code - 192 - ($bytesnumber > 2 ? 32 : 0) - ($bytesnumber > 3 ? 16 : 0); $offset = 0; for ($i = 2; $i <= $bytesnumber; $i++) { $offset ++; $code2 = ord(substr($char, $offset, 1)) - 128; $codetemp = $codetemp * 64 + $code2; } $code = $codetemp; } return $code; } function ordutf8_step2(string $char) : int { $code = ord(substr($char, 0, 1)); if ($code >= 128) { $count = 0; if ($code < 224) { $bytesnumber = 2; } else if ($code < 240) { $bytesnumber = 3; $count = 32; } else if ($code < 248) { $bytesnumber = 4; $count = 48; } $codetemp = $code - 192 - $count; $offset = 0; for ($i = 2; $i <= $bytesnumber; $i++) { $offset ++; $code2 = ord(substr($char, $offset, 1)) - 128; $codetemp = $codetemp * 64 + $code2; } $code = $codetemp; } return $code; } function ordutf8_step3(string $char) : int { $code = ord(substr($char, 0, 1)); if ($code >= 128) { $count = 0; if ($code < 224) { $bytes = 2; } else if ($code < 240) { $bytes = 3; $count = 32; } else if ($code < 248) { $bytes = 4; $count = 48; } $temp = $code - 192 - $count; for ($i = 1; $i < $bytes; $i++) { $code = $temp = $temp * 64 + ord(substr($char, $i, 1)) - 128; } } return $code; } function ordutf8_step4(string $char) : int { $code = ord(substr($char, 0, 1)); if ($code > 127) { $bytes = 2; $count = 0; if ($code > 223){ $bytes = 3; $count = 32; } if ($code > 239){ $bytes = 4; $count = 48; } $temp = $code - 192 - $count; for ($i = 1; $i < $bytes; $i++) { $code = $temp = $temp * 64 + ord(substr($char, $i, 1)) - 128; } } return $code; } function ordutf8_step5(string $char) : int { $code = ord(substr($char, 0, 1)); if ($code > 239){ return ((($code - 240) * 64 + ord(substr($char, 1, 1)) - 128) * 64 + ord(substr($char, 2, 1)) - 128) * 64 + ord(substr($char, 3, 1)) - 128; } if ($code > 223){ return (($code - 224) * 64 + ord(substr($char, 1, 1)) - 128) * 64 + ord(substr($char, 2, 1)) - 128; } if ($code > 127) { return ($code - 192) * 64 + ord(substr($char, 1, 1)) - 128; } return $code; } $cicles = 100000; $char = 'ݟ'; $time = -microtime(true); for($i = 0; $i < $cicles; $i++) { ordutf8_step1($char); } $time += microtime(true); echo $time; echo "\n"; $time = -microtime(true); for($i = 0; $i < $cicles; $i++) { ordutf8_step2($char); } $time += microtime(true); echo $time; echo "\n"; $time = -microtime(true); for($i = 0; $i < $cicles; $i++) { ordutf8_step3($char); } $time += microtime(true); echo $time; echo "\n"; $time = -microtime(true); for($i = 0; $i < $cicles; $i++) { ordutf8_step4($char); } $time += microtime(true); echo $time; echo "\n"; $time = -microtime(true); for($i = 0; $i < $cicles; $i++) { ordutf8_step5($char); } $time += microtime(true); echo $time;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 13
Branch analysis from position: 13
2 jumps found. (Code = 44) Position 1 = 15, Position 2 = 9
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
2 jumps found. (Code = 44) Position 1 = 34, Position 2 = 28
Branch analysis from position: 34
1 jumps found. (Code = 42) Position 1 = 51
Branch analysis from position: 51
2 jumps found. (Code = 44) Position 1 = 53, Position 2 = 47
Branch analysis from position: 53
1 jumps found. (Code = 42) Position 1 = 70
Branch analysis from position: 70
2 jumps found. (Code = 44) Position 1 = 72, Position 2 = 66
Branch analysis from position: 72
1 jumps found. (Code = 42) Position 1 = 89
Branch analysis from position: 89
2 jumps found. (Code = 44) Position 1 = 91, Position 2 = 85
Branch analysis from position: 91
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 85
2 jumps found. (Code = 44) Position 1 = 91, Position 2 = 85
Branch analysis from position: 91
Branch analysis from position: 85
Branch analysis from position: 66
2 jumps found. (Code = 44) Position 1 = 72, Position 2 = 66
Branch analysis from position: 72
Branch analysis from position: 66
Branch analysis from position: 47
2 jumps found. (Code = 44) Position 1 = 53, Position 2 = 47
Branch analysis from position: 53
Branch analysis from position: 47
Branch analysis from position: 28
2 jumps found. (Code = 44) Position 1 = 34, Position 2 = 28
Branch analysis from position: 34
Branch analysis from position: 28
Branch analysis from position: 9
2 jumps found. (Code = 44) Position 1 = 15, Position 2 = 9
Branch analysis from position: 15
Branch analysis from position: 9
filename:       /in/TWFLX
function name:  (null)
number of ops:  97
compiled vars:  !0 = $cicles, !1 = $char, !2 = $time, !3 = $i
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
  143     0  E >   ASSIGN                                                       !0, 100000
  144     1        ASSIGN                                                       !1, '%DD%9F'
  147     2        INIT_FCALL                                                   'microtime'
          3        SEND_VAL                                                     <true>
          4        DO_ICALL                                             $6      
          5        MUL                                                  ~7      $6, -1
          6        ASSIGN                                                       !2, ~7
  148     7        ASSIGN                                                       !3, 0
          8      > JMP                                                          ->13
  149     9    >   INIT_FCALL                                                   'ordutf8_step1'
         10        SEND_VAR                                                     !1
         11        DO_FCALL                                          0          
  148    12        PRE_INC                                                      !3
         13    >   IS_SMALLER                                                   !3, !0
         14      > JMPNZ                                                        ~12, ->9
  151    15    >   INIT_FCALL                                                   'microtime'
         16        SEND_VAL                                                     <true>
         17        DO_ICALL                                             $13     
         18        ASSIGN_OP                                         1          !2, $13
  153    19        ECHO                                                         !2
  154    20        ECHO                                                         '%0A'
  156    21        INIT_FCALL                                                   'microtime'
         22        SEND_VAL                                                     <true>
         23        DO_ICALL                                             $15     
         24        MUL                                                  ~16     $15, -1
         25        ASSIGN                                                       !2, ~16
  157    26        ASSIGN                                                       !3, 0
         27      > JMP                                                          ->32
  158    28    >   INIT_FCALL                                                   'ordutf8_step2'
         29        SEND_VAR                                                     !1
         30        DO_FCALL                                          0          
  157    31        PRE_INC                                                      !3
         32    >   IS_SMALLER                                                   !3, !0
         33      > JMPNZ                                                        ~21, ->28
  160    34    >   INIT_FCALL                                                   'microtime'
         35        SEND_VAL                                                     <true>
         36        DO_ICALL                                             $22     
         37        ASSIGN_OP                                         1          !2, $22
  162    38        ECHO                                                         !2
  163    39        ECHO                                                         '%0A'
  165    40        INIT_FCALL                                                   'microtime'
         41        SEND_VAL                                                     <true>
         42        DO_ICALL                                             $24     
         43        MUL                                                  ~25     $24, -1
         44        ASSIGN                                                       !2, ~25
  166    45        ASSIGN                                                       !3, 0
         46      > JMP                                                          ->51
  167    47    >   INIT_FCALL                                                   'ordutf8_step3'
         48        SEND_VAR                                                     !1
         49        DO_FCALL                                          0          
  166    50        PRE_INC                                                      !3
         51    >   IS_SMALLER                                                   !3, !0
         52      > JMPNZ                                                        ~30, ->47
  169    53    >   INIT_FCALL                                                   'microtime'
         54        SEND_VAL                                                     <true>
         55        DO_ICALL                                             $31     
         56        ASSIGN_OP                                         1          !2, $31
  171    57        ECHO                                                         !2
  172    58        ECHO                                                         '%0A'
  174    59        INIT_FCALL                                                   'microtime'
         60        SEND_VAL                                                     <true>
         61        DO_ICALL                                             $33     
         62        MUL                                                  ~34     $33, -1
         63        ASSIGN                                                       !2, ~34
  175    64        ASSIGN                                                       !3, 0
         65      > JMP                                                          ->70
  176    66    >   INIT_FCALL                                                   'ordutf8_step4'
         67        SEND_VAR                                                     !1
         68        DO_FCALL                                          0          
  175    69        PRE_INC                                                      !3
         70    >   IS_SMALLER                                                   !3, !0
         71      > JMPNZ                                                        ~39, ->66
  178    72    >   INIT_FCALL                                                   'microtime'
         73        SEND_VAL                                                     <true>
         74        DO_ICALL                                             $40     
         75        ASSIGN_OP                                         1          !2, $40
  180    76        ECHO                                                         !2
  181    77        ECHO                                                         '%0A'
  183    78        INIT_FCALL                                                   'microtime'
         79        SEND_VAL                                                     <true>
         80        DO_ICALL                                             $42     
         81        MUL                                                  ~43     $42, -1
         82        ASSIGN                                                       !2, ~43
  184    83        ASSIGN                                                       !3, 0
         84      > JMP                                                          ->89
  185    85    >   INIT_FCALL                                                   'ordutf8_step5'
         86        SEND_VAR                                                     !1
         87        DO_FCALL                                          0          
  184    88        PRE_INC                                                      !3
         89    >   IS_SMALLER                                                   !3, !0
         90      > JMPNZ                                                        ~48, ->85
  187    91    >   INIT_FCALL                                                   'microtime'
         92        SEND_VAL                                                     <true>
         93        DO_ICALL                                             $49     
         94        ASSIGN_OP                                         1          !2, $49
  189    95        ECHO                                                         !2
         96      > RETURN                                                       1

Function ordutf8_step1:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 52
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 13
Branch analysis from position: 11
1 jumps found. (Code = 42) Position 1 = 20
Branch analysis from position: 20
2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 25
Branch analysis from position: 23
1 jumps found. (Code = 42) Position 1 = 26
Branch analysis from position: 26
2 jumps found. (Code = 43) Position 1 = 29, Position 2 = 31
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 49
Branch analysis from position: 49
2 jumps found. (Code = 44) Position 1 = 51, Position 2 = 37
Branch analysis from position: 51
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 37
2 jumps found. (Code = 44) Position 1 = 51, Position 2 = 37
Branch analysis from position: 51
Branch analysis from position: 37
Branch analysis from position: 31
1 jumps found. (Code = 42) Position 1 = 49
Branch analysis from position: 49
Branch analysis from position: 25
2 jumps found. (Code = 43) Position 1 = 29, Position 2 = 31
Branch analysis from position: 29
Branch analysis from position: 31
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 17
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 20
Branch analysis from position: 20
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 20
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 25
Branch analysis from position: 23
Branch analysis from position: 25
Branch analysis from position: 20
Branch analysis from position: 52
filename:       /in/TWFLX
function name:  ordutf8_step1
number of ops:  56
compiled vars:  !0 = $char, !1 = $code, !2 = $bytesnumber, !3 = $codetemp, !4 = $offset, !5 = $i, !6 = $code2
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   RECV                                                 !0      
    5     1        INIT_FCALL                                                   'ord'
          2        FRAMELESS_ICALL_3                substr              ~7      !0, 0
          3        OP_DATA                                                      1
          4        SEND_VAL                                                     ~7
          5        DO_ICALL                                             $8      
          6        ASSIGN                                                       !1, $8
    7     7        IS_SMALLER_OR_EQUAL                                          128, !1
          8      > JMPZ                                                         ~10, ->52
    9     9    >   IS_SMALLER                                                   !1, 224
         10      > JMPZ                                                         ~11, ->13
   10    11    >   ASSIGN                                                       !2, 2
    9    12      > JMP                                                          ->20
   11    13    >   IS_SMALLER                                                   !1, 240
         14      > JMPZ                                                         ~13, ->17
   12    15    >   ASSIGN                                                       !2, 3
   11    16      > JMP                                                          ->20
   13    17    >   IS_SMALLER                                                   !1, 248
         18      > JMPZ                                                         ~15, ->20
   14    19    >   ASSIGN                                                       !2, 4
   16    20    >   SUB                                                  ~17     !1, 192
         21        IS_SMALLER                                                   2, !2
         22      > JMPZ                                                         ~18, ->25
         23    >   QM_ASSIGN                                            ~19     32
         24      > JMP                                                          ->26
         25    >   QM_ASSIGN                                            ~19     0
         26    >   SUB                                                  ~20     ~17, ~19
         27        IS_SMALLER                                                   3, !2
         28      > JMPZ                                                         ~21, ->31
         29    >   QM_ASSIGN                                            ~22     16
         30      > JMP                                                          ->32
         31    >   QM_ASSIGN                                            ~22     0
         32    >   SUB                                                  ~23     ~20, ~22
         33        ASSIGN                                                       !3, ~23
   18    34        ASSIGN                                                       !4, 0
   20    35        ASSIGN                                                       !5, 2
         36      > JMP                                                          ->49
   21    37    >   PRE_INC                                                      !4
   22    38        INIT_FCALL                                                   'ord'
         39        FRAMELESS_ICALL_3                substr              ~28     !0, !4
         40        OP_DATA                                                      1
         41        SEND_VAL                                                     ~28
         42        DO_ICALL                                             $29     
         43        SUB                                                  ~30     $29, 128
         44        ASSIGN                                                       !6, ~30
   23    45        MUL                                                  ~32     !3, 64
         46        ADD                                                  ~33     ~32, !6
         47        ASSIGN                                                       !3, ~33
   20    48        PRE_INC                                                      !5
         49    >   IS_SMALLER_OR_EQUAL                                          !5, !2
         50      > JMPNZ                                                        ~36, ->37
   26    51    >   ASSIGN                                                       !1, !3
   29    52    >   VERIFY_RETURN_TYPE                                           !1
         53      > RETURN                                                       !1
   30    54*       VERIFY_RETURN_TYPE                                           
         55*     > RETURN                                                       null

End of function ordutf8_step1

Function ordutf8_step2:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 44
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 14
Branch analysis from position: 12
1 jumps found. (Code = 42) Position 1 = 23
Branch analysis from position: 23
1 jumps found. (Code = 42) Position 1 = 41
Branch analysis from position: 41
2 jumps found. (Code = 44) Position 1 = 43, Position 2 = 29
Branch analysis from position: 43
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 29
2 jumps found. (Code = 44) Position 1 = 43, Position 2 = 29
Branch analysis from position: 43
Branch analysis from position: 29
Branch analysis from position: 14
2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 19
Branch analysis from position: 16
1 jumps found. (Code = 42) Position 1 = 23
Branch analysis from position: 23
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 23
Branch analysis from position: 21
1 jumps found. (Code = 42) Position 1 = 41
Branch analysis from position: 41
Branch analysis from position: 23
Branch analysis from position: 44
filename:       /in/TWFLX
function name:  ordutf8_step2
number of ops:  48
compiled vars:  !0 = $char, !1 = $code, !2 = $count, !3 = $bytesnumber, !4 = $codetemp, !5 = $offset, !6 = $i, !7 = $code2
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   32     0  E >   RECV                                                 !0      
   34     1        INIT_FCALL                                                   'ord'
          2        FRAMELESS_ICALL_3                substr              ~8      !0, 0
          3        OP_DATA                                                      1
          4        SEND_VAL                                                     ~8
          5        DO_ICALL                                             $9      
          6        ASSIGN                                                       !1, $9
   36     7        IS_SMALLER_OR_EQUAL                                          128, !1
          8      > JMPZ                                                         ~11, ->44
   37     9    >   ASSIGN                                                       !2, 0
   39    10        IS_SMALLER                                                   !1, 224
         11      > JMPZ                                                         ~13, ->14
   40    12    >   ASSIGN                                                       !3, 2
   39    13      > JMP                                                          ->23
   41    14    >   IS_SMALLER                                                   !1, 240
         15      > JMPZ                                                         ~15, ->19
   42    16    >   ASSIGN                                                       !3, 3
   43    17        ASSIGN                                                       !2, 32
   41    18      > JMP                                                          ->23
   44    19    >   IS_SMALLER                                                   !1, 248
         20      > JMPZ                                                         ~18, ->23
   45    21    >   ASSIGN                                                       !3, 4
   46    22        ASSIGN                                                       !2, 48
   49    23    >   SUB                                                  ~21     !1, 192
         24        SUB                                                  ~22     ~21, !2
         25        ASSIGN                                                       !4, ~22
   51    26        ASSIGN                                                       !5, 0
   53    27        ASSIGN                                                       !6, 2
         28      > JMP                                                          ->41
   54    29    >   PRE_INC                                                      !5
   55    30        INIT_FCALL                                                   'ord'
         31        FRAMELESS_ICALL_3                substr              ~27     !0, !5
         32        OP_DATA                                                      1
         33        SEND_VAL                                                     ~27
         34        DO_ICALL                                             $28     
         35        SUB                                                  ~29     $28, 128
         36        ASSIGN                                                       !7, ~29
   56    37        MUL                                                  ~31     !4, 64
         38        ADD                                                  ~32     ~31, !7
         39        ASSIGN                                                       !4, ~32
   53    40        PRE_INC                                                      !6
         41    >   IS_SMALLER_OR_EQUAL                                          !6, !3
         42      > JMPNZ                                                        ~35, ->29
   59    43    >   ASSIGN                                                       !1, !4
   62    44    >   VERIFY_RETURN_TYPE                                           !1
         45      > RETURN                                                       !1
   63    46*       VERIFY_RETURN_TYPE                                           
         47*     > RETURN                                                       null

End of function ordutf8_step2

Function ordutf8_step3:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 41
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 14
Branch analysis from position: 12
1 jumps found. (Code = 42) Position 1 = 23
Branch analysis from position: 23
1 jumps found. (Code = 42) Position 1 = 39
Branch analysis from position: 39
2 jumps found. (Code = 44) Position 1 = 41, Position 2 = 28
Branch analysis from position: 41
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 28
2 jumps found. (Code = 44) Position 1 = 41, Position 2 = 28
Branch analysis from position: 41
Branch analysis from position: 28
Branch analysis from position: 14
2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 19
Branch analysis from position: 16
1 jumps found. (Code = 42) Position 1 = 23
Branch analysis from position: 23
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 23
Branch analysis from position: 21
1 jumps found. (Code = 42) Position 1 = 39
Branch analysis from position: 39
Branch analysis from position: 23
Branch analysis from position: 41
filename:       /in/TWFLX
function name:  ordutf8_step3
number of ops:  45
compiled vars:  !0 = $char, !1 = $code, !2 = $count, !3 = $bytes, !4 = $temp, !5 = $i
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   65     0  E >   RECV                                                 !0      
   67     1        INIT_FCALL                                                   'ord'
          2        FRAMELESS_ICALL_3                substr              ~6      !0, 0
          3        OP_DATA                                                      1
          4        SEND_VAL                                                     ~6
          5        DO_ICALL                                             $7      
          6        ASSIGN                                                       !1, $7
   69     7        IS_SMALLER_OR_EQUAL                                          128, !1
          8      > JMPZ                                                         ~9, ->41
   70     9    >   ASSIGN                                                       !2, 0
   72    10        IS_SMALLER                                                   !1, 224
         11      > JMPZ                                                         ~11, ->14
   73    12    >   ASSIGN                                                       !3, 2
   72    13      > JMP                                                          ->23
   74    14    >   IS_SMALLER                                                   !1, 240
         15      > JMPZ                                                         ~13, ->19
   75    16    >   ASSIGN                                                       !3, 3
   76    17        ASSIGN                                                       !2, 32
   74    18      > JMP                                                          ->23
   77    19    >   IS_SMALLER                                                   !1, 248
         20      > JMPZ                                                         ~16, ->23
   78    21    >   ASSIGN                                                       !3, 4
   79    22        ASSIGN                                                       !2, 48
   82    23    >   SUB                                                  ~19     !1, 192
         24        SUB                                                  ~20     ~19, !2
         25        ASSIGN                                                       !4, ~20
   84    26        ASSIGN                                                       !5, 1
         27      > JMP                                                          ->39
   85    28    >   MUL                                                  ~23     !4, 64
         29        INIT_FCALL                                                   'ord'
         30        FRAMELESS_ICALL_3                substr              ~24     !0, !5
         31        OP_DATA                                                      1
         32        SEND_VAL                                                     ~24
         33        DO_ICALL                                             $25     
         34        ADD                                                  ~26     ~23, $25
         35        SUB                                                  ~27     ~26, 128
         36        ASSIGN                                               ~28     !4, ~27
         37        ASSIGN                                                       !1, ~28
   84    38        PRE_INC                                                      !5
         39    >   IS_SMALLER                                                   !5, !3
         40      > JMPNZ                                                        ~31, ->28
   89    41    >   VERIFY_RETURN_TYPE                                           !1
         42      > RETURN                                                       !1
   90    43*       VERIFY_RETURN_TYPE                                           
         44*     > RETURN                                                       null

End of function ordutf8_step3

Function ordutf8_step4:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 37
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 15
Branch analysis from position: 13
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 19
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 35
Branch analysis from position: 35
2 jumps found. (Code = 44) Position 1 = 37, Position 2 = 24
Branch analysis from position: 37
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 24
2 jumps found. (Code = 44) Position 1 = 37, Position 2 = 24
Branch analysis from position: 37
Branch analysis from position: 24
Branch analysis from position: 19
Branch analysis from position: 15
Branch analysis from position: 37
filename:       /in/TWFLX
function name:  ordutf8_step4
number of ops:  41
compiled vars:  !0 = $char, !1 = $code, !2 = $bytes, !3 = $count, !4 = $temp, !5 = $i
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   92     0  E >   RECV                                                 !0      
   94     1        INIT_FCALL                                                   'ord'
          2        FRAMELESS_ICALL_3                substr              ~6      !0, 0
          3        OP_DATA                                                      1
          4        SEND_VAL                                                     ~6
          5        DO_ICALL                                             $7      
          6        ASSIGN                                                       !1, $7
   96     7        IS_SMALLER                                                   127, !1
          8      > JMPZ                                                         ~9, ->37
   98     9    >   ASSIGN                                                       !2, 2
   99    10        ASSIGN                                                       !3, 0
  101    11        IS_SMALLER                                                   223, !1
         12      > JMPZ                                                         ~12, ->15
  102    13    >   ASSIGN                                                       !2, 3
  103    14        ASSIGN                                                       !3, 32
  106    15    >   IS_SMALLER                                                   239, !1
         16      > JMPZ                                                         ~15, ->19
  107    17    >   ASSIGN                                                       !2, 4
  108    18        ASSIGN                                                       !3, 48
  111    19    >   SUB                                                  ~18     !1, 192
         20        SUB                                                  ~19     ~18, !3
         21        ASSIGN                                                       !4, ~19
  113    22        ASSIGN                                                       !5, 1
         23      > JMP                                                          ->35
  114    24    >   MUL                                                  ~22     !4, 64
         25        INIT_FCALL                                                   'ord'
         26        FRAMELESS_ICALL_3                substr              ~23     !0, !5
         27        OP_DATA                                                      1
         28        SEND_VAL                                                     ~23
         29        DO_ICALL                                             $24     
         30        ADD                                                  ~25     ~22, $24
         31        SUB                                                  ~26     ~25, 128
         32        ASSIGN                                               ~27     !4, ~26
         33        ASSIGN                                    

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
161.28 ms | 1382 KiB | 20 Q