3v4l.org

run code in 500+ PHP versions simultaneously
<?php var_dump(strlen('user_')); var_dump(mb_strlen('user_')); var_dump(substr('user_', 0, 2)); var_dump(mb_substr('user_', 0, 2)); var_dump(substr('user_', 2)); var_dump(mb_substr('user_', 2)); var_dump(strlen('Лорем')); var_dump(mb_strlen('Лорем')); var_dump(substr('Лорем', 0, 2)); var_dump(mb_substr('Лорем', 0, 2)); var_dump(substr('Лорем', 2)); var_dump(mb_substr('Лорем', 2)); echo 'This breaks your database because of the invalid char:' . "\n"; var_dump(substr('Лорем', 3)); var_dump(mb_substr('Лорем', 3));
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/licri
function name:  (null)
number of ops:  79
compiled vars:  none
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                                   'var_dump'
          1        SEND_VAL                                                     5
          2        DO_ICALL                                                     
    4     3        INIT_FCALL                                                   'var_dump'
          4        INIT_FCALL                                                   'mb_strlen'
          5        SEND_VAL                                                     'user_'
          6        DO_ICALL                                             $1      
          7        SEND_VAR                                                     $1
          8        DO_ICALL                                                     
    5     9        INIT_FCALL                                                   'var_dump'
         10        FRAMELESS_ICALL_3                substr              ~3      'user_', 0
         11        OP_DATA                                                      2
         12        SEND_VAL                                                     ~3
         13        DO_ICALL                                                     
    6    14        INIT_FCALL                                                   'var_dump'
         15        INIT_FCALL                                                   'mb_substr'
         16        SEND_VAL                                                     'user_'
         17        SEND_VAL                                                     0
         18        SEND_VAL                                                     2
         19        DO_ICALL                                             $5      
         20        SEND_VAR                                                     $5
         21        DO_ICALL                                                     
    7    22        INIT_FCALL                                                   'var_dump'
         23        FRAMELESS_ICALL_2                substr              ~7      'user_', 2
         24        SEND_VAL                                                     ~7
         25        DO_ICALL                                                     
    8    26        INIT_FCALL                                                   'var_dump'
         27        INIT_FCALL                                                   'mb_substr'
         28        SEND_VAL                                                     'user_'
         29        SEND_VAL                                                     2
         30        DO_ICALL                                             $9      
         31        SEND_VAR                                                     $9
         32        DO_ICALL                                                     
   11    33        INIT_FCALL                                                   'var_dump'
         34        SEND_VAL                                                     10
         35        DO_ICALL                                                     
   12    36        INIT_FCALL                                                   'var_dump'
         37        INIT_FCALL                                                   'mb_strlen'
         38        SEND_VAL                                                     '%D0%9B%D0%BE%D1%80%D0%B5%D0%BC'
         39        DO_ICALL                                             $12     
         40        SEND_VAR                                                     $12
         41        DO_ICALL                                                     
   13    42        INIT_FCALL                                                   'var_dump'
         43        FRAMELESS_ICALL_3                substr              ~14     '%D0%9B%D0%BE%D1%80%D0%B5%D0%BC', 0
         44        OP_DATA                                                      2
         45        SEND_VAL                                                     ~14
         46        DO_ICALL                                                     
   14    47        INIT_FCALL                                                   'var_dump'
         48        INIT_FCALL                                                   'mb_substr'
         49        SEND_VAL                                                     '%D0%9B%D0%BE%D1%80%D0%B5%D0%BC'
         50        SEND_VAL                                                     0
         51        SEND_VAL                                                     2
         52        DO_ICALL                                             $16     
         53        SEND_VAR                                                     $16
         54        DO_ICALL                                                     
   15    55        INIT_FCALL                                                   'var_dump'
         56        FRAMELESS_ICALL_2                substr              ~18     '%D0%9B%D0%BE%D1%80%D0%B5%D0%BC', 2
         57        SEND_VAL                                                     ~18
         58        DO_ICALL                                                     
   16    59        INIT_FCALL                                                   'var_dump'
         60        INIT_FCALL                                                   'mb_substr'
         61        SEND_VAL                                                     '%D0%9B%D0%BE%D1%80%D0%B5%D0%BC'
         62        SEND_VAL                                                     2
         63        DO_ICALL                                             $20     
         64        SEND_VAR                                                     $20
         65        DO_ICALL                                                     
   19    66        ECHO                                                         'This+breaks+your+database+because+of+the+invalid+char%3A%0A'
   20    67        INIT_FCALL                                                   'var_dump'
         68        FRAMELESS_ICALL_2                substr              ~22     '%D0%9B%D0%BE%D1%80%D0%B5%D0%BC', 3
         69        SEND_VAL                                                     ~22
         70        DO_ICALL                                                     
   21    71        INIT_FCALL                                                   'var_dump'
         72        INIT_FCALL                                                   'mb_substr'
         73        SEND_VAL                                                     '%D0%9B%D0%BE%D1%80%D0%B5%D0%BC'
         74        SEND_VAL                                                     3
         75        DO_ICALL                                             $24     
         76        SEND_VAR                                                     $24
         77        DO_ICALL                                                     
         78      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
164.12 ms | 2176 KiB | 17 Q