3v4l.org

run code in 500+ PHP versions simultaneously
<?php $vals = []; for($i = 0; $i < 5000; $i++){ $val = mt_rand(0,5000); if(isset($vals[$val])){ $vals[$val] += 1; }else{ $vals[$val] = 1; } } echo '5000 iterations.'; echo 'Number of different numbers, between 0-5000: ' . count($vals);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 3
Branch analysis from position: 18
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 13
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 15
Branch analysis from position: 15
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 3
Branch analysis from position: 18
Branch analysis from position: 3
Branch analysis from position: 13
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 3
Branch analysis from position: 18
Branch analysis from position: 3
filename:       /in/Qo7nL
function name:  (null)
number of ops:  23
compiled vars:  !0 = $vals, !1 = $i, !2 = $val
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, <array>
    5     1        ASSIGN                                                       !1, 0
          2      > JMP                                                          ->16
    6     3    >   INIT_FCALL                                                   'mt_rand'
          4        SEND_VAL                                                     0
          5        SEND_VAL                                                     5000
          6        DO_ICALL                                             $5      
          7        ASSIGN                                                       !2, $5
    8     8        ISSET_ISEMPTY_DIM_OBJ                             0          !0, !2
          9      > JMPZ                                                         ~7, ->13
    9    10    >   ASSIGN_DIM_OP                    +=               1          !0, !2
         11        OP_DATA                                                      1
    8    12      > JMP                                                          ->15
   11    13    >   ASSIGN_DIM                                                   !0, !2
         14        OP_DATA                                                      1
    5    15    >   PRE_INC                                                      !1
         16    >   IS_SMALLER                                                   !1, 5000
         17      > JMPNZ                                                        ~11, ->3
   15    18    >   ECHO                                                         '5000+iterations.'
   16    19        COUNT                                                ~12     !0
         20        CONCAT                                               ~13     'Number+of+different+numbers%2C+between+0-5000%3A+', ~12
         21        ECHO                                                         ~13
         22      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
163.66 ms | 1165 KiB | 14 Q