3v4l.org

run code in 300+ PHP versions simultaneously
<?php $chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $keys = []; $vals = []; for ($i = 0; $i < 120; $i++) { $keys[] = '%s'; $vals[] = substr(str_shuffle($chars), 0, mt_rand(7, 16)); } $s = ''; $t = microtime(true); for ($i = 0, $c = count($vals); $i < $c; $i+=4) { $s .= sprintf('%s, %s, %s, %s, ', $vals[$i], $vals[$i + 1], $vals[$i + 2], $vals[$i + 3]); } echo microtime(true) - $t; echo "\n"; $t = microtime(true); $s = vsprintf(implode(', ', $keys), $vals); echo microtime(true) - $t; echo "\n";
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 22
Branch analysis from position: 22
2 jumps found. (Code = 44) Position 1 = 24, Position 2 = 5
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 49
Branch analysis from position: 49
2 jumps found. (Code = 44) Position 1 = 51, Position 2 = 33
Branch analysis from position: 51
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 33
2 jumps found. (Code = 44) Position 1 = 51, Position 2 = 33
Branch analysis from position: 51
Branch analysis from position: 33
Branch analysis from position: 5
2 jumps found. (Code = 44) Position 1 = 24, Position 2 = 5
Branch analysis from position: 24
Branch analysis from position: 5
filename:       /in/Up3jQ
function name:  (null)
number of ops:  77
compiled vars:  !0 = $chars, !1 = $keys, !2 = $vals, !3 = $i, !4 = $s, !5 = $t, !6 = $c
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    5     1        ASSIGN                                                   !1, <array>
    6     2        ASSIGN                                                   !2, <array>
    8     3        ASSIGN                                                   !3, 0
          4      > JMP                                                      ->22
    9     5    >   ASSIGN_DIM                                               !1
          6        OP_DATA                                                  '%25s'
   10     7        INIT_FCALL                                               'substr'
          8        INIT_FCALL                                               'str_shuffle'
          9        SEND_VAR                                                 !0
         10        DO_ICALL                                         $13     
         11        SEND_VAR                                                 $13
         12        SEND_VAL                                                 0
         13        INIT_FCALL                                               'mt_rand'
         14        SEND_VAL                                                 7
         15        SEND_VAL                                                 16
         16        DO_ICALL                                         $14     
         17        SEND_VAR                                                 $14
         18        DO_ICALL                                         $15     
         19        ASSIGN_DIM                                               !2
         20        OP_DATA                                                  $15
    8    21        PRE_INC                                                  !3
         22    >   IS_SMALLER                                               !3, 120
         23      > JMPNZ                                                    ~17, ->5
   13    24    >   ASSIGN                                                   !4, ''
   14    25        INIT_FCALL                                               'microtime'
         26        SEND_VAL                                                 <true>
         27        DO_ICALL                                         $19     
         28        ASSIGN                                                   !5, $19
   16    29        ASSIGN                                                   !3, 0
         30        COUNT                                            ~22     !2
         31        ASSIGN                                                   !6, ~22
         32      > JMP                                                      ->49
   17    33    >   INIT_FCALL                                               'sprintf'
         34        SEND_VAL                                                 '%25s%2C+%25s%2C+%25s%2C+%25s%2C+'
         35        FETCH_DIM_R                                      ~24     !2, !3
         36        SEND_VAL                                                 ~24
         37        ADD                                              ~25     !3, 1
         38        FETCH_DIM_R                                      ~26     !2, ~25
         39        SEND_VAL                                                 ~26
         40        ADD                                              ~27     !3, 2
         41        FETCH_DIM_R                                      ~28     !2, ~27
         42        SEND_VAL                                                 ~28
         43        ADD                                              ~29     !3, 3
         44        FETCH_DIM_R                                      ~30     !2, ~29
         45        SEND_VAL                                                 ~30
         46        DO_ICALL                                         $31     
         47        ASSIGN_OP                                     8          !4, $31
   16    48        ASSIGN_OP                                     1          !3, 4
         49    >   IS_SMALLER                                               !3, !6
         50      > JMPNZ                                                    ~34, ->33
   20    51    >   INIT_FCALL                                               'microtime'
         52        SEND_VAL                                                 <true>
         53        DO_ICALL                                         $35     
         54        SUB                                              ~36     $35, !5
         55        ECHO                                                     ~36
   21    56        ECHO                                                     '%0A'
   23    57        INIT_FCALL                                               'microtime'
         58        SEND_VAL                                                 <true>
         59        DO_ICALL                                         $37     
         60        ASSIGN                                                   !5, $37
   24    61        INIT_FCALL                                               'vsprintf'
         62        INIT_FCALL                                               'implode'
         63        SEND_VAL                                                 '%2C+'
         64        SEND_VAR                                                 !1
         65        DO_ICALL                                         $39     
         66        SEND_VAR                                                 $39
         67        SEND_VAR                                                 !2
         68        DO_ICALL                                         $40     
         69        ASSIGN                                                   !4, $40
   26    70        INIT_FCALL                                               'microtime'
         71        SEND_VAL                                                 <true>
         72        DO_ICALL                                         $42     
         73        SUB                                              ~43     $42, !5
         74        ECHO                                                     ~43
   27    75        ECHO                                                     '%0A'
         76      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
143.69 ms | 1027 KiB | 20 Q