3v4l.org

run code in 300+ PHP versions simultaneously
<?php $c = 'déjà'; // skipped tests var_dump('jà' === grapheme_substr($c, -2, 3)); var_dump("" === grapheme_substr($c, -1, 0) ); var_dump(false === grapheme_substr($c, 1, -4) ); // issued part var_dump('à' === grapheme_substr('éà', 1, -2));
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/DZ5LF
function name:  (null)
number of ops:  38
compiled vars:  !0 = $c
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, 'd%C3%A9j%C3%A0'
    5     1        INIT_FCALL                                               'var_dump'
          2        INIT_FCALL_BY_NAME                                       'grapheme_substr'
          3        SEND_VAR_EX                                              !0
          4        SEND_VAL_EX                                              -2
          5        SEND_VAL_EX                                              3
          6        DO_FCALL                                      0  $2      
          7        IS_IDENTICAL                                     ~3      $2, 'j%C3%A0'
          8        SEND_VAL                                                 ~3
          9        DO_ICALL                                                 
    6    10        INIT_FCALL                                               'var_dump'
         11        INIT_FCALL_BY_NAME                                       'grapheme_substr'
         12        SEND_VAR_EX                                              !0
         13        SEND_VAL_EX                                              -1
         14        SEND_VAL_EX                                              0
         15        DO_FCALL                                      0  $5      
         16        IS_IDENTICAL                                     ~6      $5, ''
         17        SEND_VAL                                                 ~6
         18        DO_ICALL                                                 
    7    19        INIT_FCALL                                               'var_dump'
         20        INIT_FCALL_BY_NAME                                       'grapheme_substr'
         21        SEND_VAR_EX                                              !0
         22        SEND_VAL_EX                                              1
         23        SEND_VAL_EX                                              -4
         24        DO_FCALL                                      0  $8      
         25        TYPE_CHECK                                    4  ~9      $8
         26        SEND_VAL                                                 ~9
         27        DO_ICALL                                                 
   10    28        INIT_FCALL                                               'var_dump'
         29        INIT_FCALL_BY_NAME                                       'grapheme_substr'
         30        SEND_VAL_EX                                              '%C3%A9%C3%A0'
         31        SEND_VAL_EX                                              1
         32        SEND_VAL_EX                                              -2
         33        DO_FCALL                                      0  $11     
         34        IS_IDENTICAL                                     ~12     $11, '%C3%A0'
         35        SEND_VAL                                                 ~12
         36        DO_ICALL                                                 
         37      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
206.97 ms | 1396 KiB | 18 Q