3v4l.org

run code in 300+ PHP versions simultaneously
<?php $n = 38; $c = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890-_'; for ($x=0; $x<$n; $x++) { $c = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890'; if (($x<$n) && ($x > 0) && ($s < 2)) { $c .= '-_'; } $r .= substr($c, mt_rand(0, strlen($c) - 1), 1); if (($r == '_') || ($r == '-')) { $s++; } } echo $r;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 33
Branch analysis from position: 33
2 jumps found. (Code = 44) Position 1 = 35, Position 2 = 4
Branch analysis from position: 35
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 4
2 jumps found. (Code = 46) Position 1 = 7, Position 2 = 9
Branch analysis from position: 7
2 jumps found. (Code = 46) Position 1 = 10, Position 2 = 12
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
2 jumps found. (Code = 47) Position 1 = 28, Position 2 = 30
Branch analysis from position: 28
2 jumps found. (Code = 43) Position 1 = 31, Position 2 = 32
Branch analysis from position: 31
2 jumps found. (Code = 44) Position 1 = 35, Position 2 = 4
Branch analysis from position: 35
Branch analysis from position: 4
Branch analysis from position: 32
Branch analysis from position: 30
Branch analysis from position: 14
Branch analysis from position: 12
Branch analysis from position: 9
filename:       /in/lGD4R
function name:  (null)
number of ops:  37
compiled vars:  !0 = $n, !1 = $c, !2 = $x, !3 = $s, !4 = $r
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, 38
    3     1        ASSIGN                                                   !1, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890-_'
    5     2        ASSIGN                                                   !2, 0
          3      > JMP                                                      ->33
    6     4    >   ASSIGN                                                   !1, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890'
    7     5        IS_SMALLER                                       ~9      !2, !0
          6      > JMPZ_EX                                          ~9      ~9, ->9
          7    >   IS_SMALLER                                       ~10     0, !2
          8        BOOL                                             ~9      ~10
          9    > > JMPZ_EX                                          ~9      ~9, ->12
         10    >   IS_SMALLER                                       ~11     !3, 2
         11        BOOL                                             ~9      ~11
         12    > > JMPZ                                                     ~9, ->14
         13    >   ASSIGN_OP                                     8          !1, '-_'
    8    14    >   INIT_FCALL                                               'substr'
         15        SEND_VAR                                                 !1
         16        INIT_FCALL                                               'mt_rand'
         17        SEND_VAL                                                 0
         18        STRLEN                                           ~13     !1
         19        SUB                                              ~14     ~13, 1
         20        SEND_VAL                                                 ~14
         21        DO_ICALL                                         $15     
         22        SEND_VAR                                                 $15
         23        SEND_VAL                                                 1
         24        DO_ICALL                                         $16     
         25        ASSIGN_OP                                     8          !4, $16
    9    26        IS_EQUAL                                         ~18     !4, '_'
         27      > JMPNZ_EX                                         ~18     ~18, ->30
         28    >   IS_EQUAL                                         ~19     !4, '-'
         29        BOOL                                             ~18     ~19
         30    > > JMPZ                                                     ~18, ->32
         31    >   PRE_INC                                                  !3
    5    32    >   PRE_INC                                                  !2
         33    >   IS_SMALLER                                               !2, !0
         34      > JMPNZ                                                    ~22, ->4
   12    35    >   ECHO                                                     !4
         36      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
149.57 ms | 1400 KiB | 17 Q