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)); } $t = microtime(true); $s = vsprintf(implode(', ', $keys), $vals); echo microtime(true) - $t; echo "\n"; $t = microtime(true); $s = ''; 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";
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 = 68
Branch analysis from position: 68
2 jumps found. (Code = 44) Position 1 = 70, Position 2 = 52
Branch analysis from position: 70
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 52
2 jumps found. (Code = 44) Position 1 = 70, Position 2 = 52
Branch analysis from position: 70
Branch analysis from position: 52
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/lvnqS
function name:  (null)
number of ops:  77
compiled vars:  !0 = $chars, !1 = $keys, !2 = $vals, !3 = $i, !4 = $t, !5 = $s, !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    >   INIT_FCALL                                               'microtime'
         25        SEND_VAL                                                 <true>
         26        DO_ICALL                                         $18     
         27        ASSIGN                                                   !4, $18
   14    28        INIT_FCALL                                               'vsprintf'
         29        INIT_FCALL                                               'implode'
         30        SEND_VAL                                                 '%2C+'
         31        SEND_VAR                                                 !1
         32        DO_ICALL                                         $20     
         33        SEND_VAR                                                 $20
         34        SEND_VAR                                                 !2
         35        DO_ICALL                                         $21     
         36        ASSIGN                                                   !5, $21
   16    37        INIT_FCALL                                               'microtime'
         38        SEND_VAL                                                 <true>
         39        DO_ICALL                                         $23     
         40        SUB                                              ~24     $23, !4
         41        ECHO                                                     ~24
   17    42        ECHO                                                     '%0A'
   19    43        INIT_FCALL                                               'microtime'
         44        SEND_VAL                                                 <true>
         45        DO_ICALL                                         $25     
         46        ASSIGN                                                   !4, $25
   20    47        ASSIGN                                                   !5, ''
   21    48        ASSIGN                                                   !3, 0
         49        COUNT                                            ~29     !2
         50        ASSIGN                                                   !6, ~29
         51      > JMP                                                      ->68
   22    52    >   INIT_FCALL                                               'sprintf'
         53        SEND_VAL                                                 '%25s%2C+%25s%2C+%25s%2C+%25s%2C+'
         54        FETCH_DIM_R                                      ~31     !2, !3
         55        SEND_VAL                                                 ~31
         56        ADD                                              ~32     !3, 1
         57        FETCH_DIM_R                                      ~33     !2, ~32
         58        SEND_VAL                                                 ~33
         59        ADD                                              ~34     !3, 2
         60        FETCH_DIM_R                                      ~35     !2, ~34
         61        SEND_VAL                                                 ~35
         62        ADD                                              ~36     !3, 3
         63        FETCH_DIM_R                                      ~37     !2, ~36
         64        SEND_VAL                                                 ~37
         65        DO_ICALL                                         $38     
         66        ASSIGN_OP                                     8          !5, $38
   21    67        ASSIGN_OP                                     1          !3, 4
         68    >   IS_SMALLER                                               !3, !6
         69      > JMPNZ                                                    ~41, ->52
   26    70    >   INIT_FCALL                                               'microtime'
         71        SEND_VAL                                                 <true>
         72        DO_ICALL                                         $42     
         73        SUB                                              ~43     $42, !4
         74        ECHO                                                     ~43
   27    75        ECHO                                                     '%0A'
         76      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
161.9 ms | 1027 KiB | 20 Q