3v4l.org

run code in 300+ PHP versions simultaneously
<?php $string = 'This is a string of words with multiple vowels.'; $len = strlen($string); for ($i = $len; $i >= 0 ; $i--) { if (strpos("aeiouAEIOU", substr($string, $i, 1)) !== false) { echo substr_replace($string, "", $i, 1); exit(); } } echo $string;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 25
Branch analysis from position: 25
2 jumps found. (Code = 44) Position 1 = 27, Position 2 = 5
Branch analysis from position: 27
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 5
2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 24
Branch analysis from position: 16
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 24
2 jumps found. (Code = 44) Position 1 = 27, Position 2 = 5
Branch analysis from position: 27
Branch analysis from position: 5
filename:       /in/EXKlk
function name:  (null)
number of ops:  29
compiled vars:  !0 = $string, !1 = $len, !2 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, 'This+is+a+string+of+words+with+multiple+vowels.'
    4     1        STRLEN                                           ~4      !0
          2        ASSIGN                                                   !1, ~4
    5     3        ASSIGN                                                   !2, !1
          4      > JMP                                                      ->25
    6     5    >   INIT_FCALL                                               'strpos'
          6        SEND_VAL                                                 'aeiouAEIOU'
          7        INIT_FCALL                                               'substr'
          8        SEND_VAR                                                 !0
          9        SEND_VAR                                                 !2
         10        SEND_VAL                                                 1
         11        DO_ICALL                                         $7      
         12        SEND_VAR                                                 $7
         13        DO_ICALL                                         $8      
         14        TYPE_CHECK                                  1018          $8
         15      > JMPZ                                                     ~9, ->24
    7    16    >   INIT_FCALL                                               'substr_replace'
         17        SEND_VAR                                                 !0
         18        SEND_VAL                                                 ''
         19        SEND_VAR                                                 !2
         20        SEND_VAL                                                 1
         21        DO_ICALL                                         $10     
         22        ECHO                                                     $10
    8    23      > EXIT                                                     
    5    24    >   PRE_DEC                                                  !2
         25    >   IS_SMALLER_OR_EQUAL                                      0, !2
         26      > JMPNZ                                                    ~12, ->5
   11    27    >   ECHO                                                     !0
         28      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
160.05 ms | 1396 KiB | 19 Q