3v4l.org

run code in 300+ PHP versions simultaneously
<?php if (substr(PHP_VERSION, 0, 5) !== '7.1.6') die('Meh'); $s["HTTP_HOST"] = "localhost"; $s["HTTP_CONNECTION"] = "keep-alive"; $s["HTTP_USER_AGENT"] = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"; $s["HTTP_ACCEPT"] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; $s["HTTP_REFERER"] = "http://localhost/php/super-variables/;\$s.php"; $s["HTTP_ACCEPT_ENCODING"] = "gzip,deflate,sdch"; $s["HTTP_ACCEPT_LANGUAGE"] = "en-US,en;q=0.8"; $s["HTTP_ACCEPT_CHARSET"] = "ISO-8859-1,utf-8;q=0.7,*;q=0.3"; $s["HTTP_COOKIE"] = "bsau=13422601771944046296; bsas=13422601771975238542"; $s["PATH"] = "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem; C:\Windows\System32\WindowsPowerShell\v1.0\; c:\python32\python;"; $s["SystemRoot"] = "C:\Windows"; $s["COMSPEC"] = "C:\Windows\system32\cmd.exe"; $s["PATHEXT"] = ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"; $s["WINDIR"] = "C:\Windows"; $s["SERVER_SIGNATURE"] = ""; $s["SERVER_SOFTWARE"] = "Apache/2.2.11 (Win32) PHP/5.3.0"; $s["SERVER_NAME"] = "localhost"; $s["SERVER_ADDR"] = "127.0.0.1"; $s["SERVER_PORT"] = "80"; $s["REMOTE_ADDR"] = "127.0.0.1"; $s["DOCUMENT_ROOT"] = "F:/wamp/www/"; $s["SERVER_ADMIN"] = "admin@localhost"; $s["SCRIPT_FILENAME"] = "F:/wamp/www/php/super-variables/test-;\$s.php"; $s["REMOTE_PORT"] = "51124"; $s["GATEWAY_INTERFACE"] = "CGI/1.1"; $s["SERVER_PROTOCOL"] = "HTTP/1.1"; $s["REQUEST_METHOD"] = "GET"; $s["QUERY_STRING"] = ""; $s["REQUEST_URI"] = "/php/super-variables/test-;\$s.php"; $s["SCRIPT_NAME"] = "/php/super-variables/test-;\$s.php"; $s["PHP_SELF"] = "/php/super-variables/test-;\$s.php"; $s["REQUEST_TIME"] = 1342260551; $a = microtime(1); for ($i = 20000; $i--;) { foreach ($s as $key => $val) { if ($key[0] === 'H' && substr($key, 0, 5) === 'HTTP_') { $key = substr($key, 5); } } } echo 1000 * (microtime(1) - $a) . "\n"; $a = microtime(1); for ($i = 20000; $i--;) { foreach ($s as $key => $val) { if (substr($key, 0, 5) === 'HTTP_') { $key = substr($key, 5); } } } echo 1000 * (microtime(1) - $a) . "\n";
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 8
Branch analysis from position: 7
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 8
1 jumps found. (Code = 42) Position 1 = 99
Branch analysis from position: 99
2 jumps found. (Code = 44) Position 1 = 101, Position 2 = 78
Branch analysis from position: 101
1 jumps found. (Code = 42) Position 1 = 131
Branch analysis from position: 131
2 jumps found. (Code = 44) Position 1 = 133, Position 2 = 114
Branch analysis from position: 133
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 114
2 jumps found. (Code = 77) Position 1 = 115, Position 2 = 130
Branch analysis from position: 115
2 jumps found. (Code = 78) Position 1 = 116, Position 2 = 130
Branch analysis from position: 116
2 jumps found. (Code = 43) Position 1 = 124, Position 2 = 129
Branch analysis from position: 124
1 jumps found. (Code = 42) Position 1 = 115
Branch analysis from position: 115
Branch analysis from position: 129
Branch analysis from position: 130
2 jumps found. (Code = 44) Position 1 = 133, Position 2 = 114
Branch analysis from position: 133
Branch analysis from position: 114
Branch analysis from position: 130
Branch analysis from position: 78
2 jumps found. (Code = 77) Position 1 = 79, Position 2 = 98
Branch analysis from position: 79
2 jumps found. (Code = 78) Position 1 = 80, Position 2 = 98
Branch analysis from position: 80
2 jumps found. (Code = 46) Position 1 = 84, Position 2 = 91
Branch analysis from position: 84
2 jumps found. (Code = 43) Position 1 = 92, Position 2 = 97
Branch analysis from position: 92
1 jumps found. (Code = 42) Position 1 = 79
Branch analysis from position: 79
Branch analysis from position: 97
Branch analysis from position: 91
Branch analysis from position: 98
2 jumps found. (Code = 44) Position 1 = 101, Position 2 = 78
Branch analysis from position: 101
Branch analysis from position: 78
Branch analysis from position: 98
filename:       /in/BFp5S
function name:  (null)
number of ops:  141
compiled vars:  !0 = $s, !1 = $a, !2 = $i, !3 = $val, !4 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   INIT_FCALL                                               'substr'
          1        SEND_VAL                                                 '8.0.0'
          2        SEND_VAL                                                 0
          3        SEND_VAL                                                 5
          4        DO_ICALL                                         $5      
          5        IS_NOT_IDENTICAL                                         $5, '7.1.6'
          6      > JMPZ                                                     ~6, ->8
          7    > > EXIT                                                     'Meh'
    4     8    >   ASSIGN_DIM                                               !0, 'HTTP_HOST'
          9        OP_DATA                                                  'localhost'
    5    10        ASSIGN_DIM                                               !0, 'HTTP_CONNECTION'
         11        OP_DATA                                                  'keep-alive'
    6    12        ASSIGN_DIM                                               !0, 'HTTP_USER_AGENT'
         13        OP_DATA                                                  'Mozilla%2F5.0+%28Windows+NT+6.1%29+AppleWebKit%2F536.11%0A%28KHTML%2C+like+Gecko%29+Chrome%2F20.0.1132.57+Safari%2F536.11'
    8    14        ASSIGN_DIM                                               !0, 'HTTP_ACCEPT'
         15        OP_DATA                                                  'text%2Fhtml%2Capplication%2Fxhtml%2Bxml%2Capplication%2Fxml%3Bq%3D0.9%2C%2A%2F%2A%3Bq%3D0.8'
    9    16        ASSIGN_DIM                                               !0, 'HTTP_REFERER'
         17        OP_DATA                                                  'http%3A%2F%2Flocalhost%2Fphp%2Fsuper-variables%2F%3B%24s.php'
   10    18        ASSIGN_DIM                                               !0, 'HTTP_ACCEPT_ENCODING'
         19        OP_DATA                                                  'gzip%2Cdeflate%2Csdch'
   11    20        ASSIGN_DIM                                               !0, 'HTTP_ACCEPT_LANGUAGE'
         21        OP_DATA                                                  'en-US%2Cen%3Bq%3D0.8'
   12    22        ASSIGN_DIM                                               !0, 'HTTP_ACCEPT_CHARSET'
         23        OP_DATA                                                  'ISO-8859-1%2Cutf-8%3Bq%3D0.7%2C%2A%3Bq%3D0.3'
   13    24        ASSIGN_DIM                                               !0, 'HTTP_COOKIE'
         25        OP_DATA                                                  'bsau%3D13422601771944046296%3B+bsas%3D13422601771975238542'
   14    26        ASSIGN_DIM                                               !0, 'PATH'
         27        OP_DATA                                                  'C%3A%5CWindows%5Csystem32%3BC%3A%5CWindows%3BC%3A%5CWindows%5CSystem32%5CWbem%3B+C%3A%5CWindows%5CSystem32%5CWindowsPowerShell%0B1.0%5C%3B+c%3A%5Cpython32%5Cpython%3B'
   15    28        ASSIGN_DIM                                               !0, 'SystemRoot'
         29        OP_DATA                                                  'C%3A%5CWindows'
   16    30        ASSIGN_DIM                                               !0, 'COMSPEC'
         31        OP_DATA                                                  'C%3A%5CWindows%5Csystem32%5Ccmd.exe'
   17    32        ASSIGN_DIM                                               !0, 'PATHEXT'
         33        OP_DATA                                                  '.COM%3B.EXE%3B.BAT%3B.CMD%3B.VBS%3B.VBE%3B.JS%3B.JSE%3B.WSF%3B.WSH%3B.MSC'
   18    34        ASSIGN_DIM                                               !0, 'WINDIR'
         35        OP_DATA                                                  'C%3A%5CWindows'
   19    36        ASSIGN_DIM                                               !0, 'SERVER_SIGNATURE'
         37        OP_DATA                                                  ''
   20    38        ASSIGN_DIM                                               !0, 'SERVER_SOFTWARE'
         39        OP_DATA                                                  'Apache%2F2.2.11+%28Win32%29+PHP%2F5.3.0'
   21    40        ASSIGN_DIM                                               !0, 'SERVER_NAME'
         41        OP_DATA                                                  'localhost'
   22    42        ASSIGN_DIM                                               !0, 'SERVER_ADDR'
         43        OP_DATA                                                  '127.0.0.1'
   23    44        ASSIGN_DIM                                               !0, 'SERVER_PORT'
         45        OP_DATA                                                  '80'
   24    46        ASSIGN_DIM                                               !0, 'REMOTE_ADDR'
         47        OP_DATA                                                  '127.0.0.1'
   25    48        ASSIGN_DIM                                               !0, 'DOCUMENT_ROOT'
         49        OP_DATA                                                  'F%3A%2Fwamp%2Fwww%2F'
   26    50        ASSIGN_DIM                                               !0, 'SERVER_ADMIN'
         51        OP_DATA                                                  'admin%40localhost'
   27    52        ASSIGN_DIM                                               !0, 'SCRIPT_FILENAME'
         53        OP_DATA                                                  'F%3A%2Fwamp%2Fwww%2Fphp%2Fsuper-variables%2Ftest-%3B%24s.php'
   28    54        ASSIGN_DIM                                               !0, 'REMOTE_PORT'
         55        OP_DATA                                                  '51124'
   29    56        ASSIGN_DIM                                               !0, 'GATEWAY_INTERFACE'
         57        OP_DATA                                                  'CGI%2F1.1'
   30    58        ASSIGN_DIM                                               !0, 'SERVER_PROTOCOL'
         59        OP_DATA                                                  'HTTP%2F1.1'
   31    60        ASSIGN_DIM                                               !0, 'REQUEST_METHOD'
         61        OP_DATA                                                  'GET'
   32    62        ASSIGN_DIM                                               !0, 'QUERY_STRING'
         63        OP_DATA                                                  ''
   33    64        ASSIGN_DIM                                               !0, 'REQUEST_URI'
         65        OP_DATA                                                  '%2Fphp%2Fsuper-variables%2Ftest-%3B%24s.php'
   34    66        ASSIGN_DIM                                               !0, 'SCRIPT_NAME'
         67        OP_DATA                                                  '%2Fphp%2Fsuper-variables%2Ftest-%3B%24s.php'
   35    68        ASSIGN_DIM                                               !0, 'PHP_SELF'
         69        OP_DATA                                                  '%2Fphp%2Fsuper-variables%2Ftest-%3B%24s.php'
   36    70        ASSIGN_DIM                                               !0, 'REQUEST_TIME'
         71        OP_DATA                                                  1342260551
   38    72        INIT_FCALL                                               'microtime'
         73        SEND_VAL                                                 1
         74        DO_ICALL                                         $39     
         75        ASSIGN                                                   !1, $39
   39    76        ASSIGN                                                   !2, 20000
         77      > JMP                                                      ->99
   40    78    > > FE_RESET_R                                       $42     !0, ->98
         79    > > FE_FETCH_R                                       ~43     $42, !3, ->98
         80    >   ASSIGN                                                   !4, ~43
   41    81        FETCH_DIM_R                                      ~45     !4, 0
         82        IS_IDENTICAL                                     ~46     ~45, 'H'
         83      > JMPZ_EX                                          ~46     ~46, ->91
         84    >   INIT_FCALL                                               'substr'
         85        SEND_VAR                                                 !4
         86        SEND_VAL                                                 0
         87        SEND_VAL                                                 5
         88        DO_ICALL                                         $47     
         89        IS_IDENTICAL                                     ~48     $47, 'HTTP_'
         90        BOOL                                             ~46     ~48
         91    > > JMPZ                                                     ~46, ->97
   42    92    >   INIT_FCALL                                               'substr'
         93        SEND_VAR                                                 !4
         94        SEND_VAL                                                 5
         95        DO_ICALL                                         $49     
         96        ASSIGN                                                   !4, $49
   40    97    > > JMP                                                      ->79
         98    >   FE_FREE                                                  $42
   39    99    >   POST_DEC                                         ~51     !2
        100      > JMPNZ                                                    ~51, ->78
   46   101    >   INIT_FCALL                                               'microtime'
        102        SEND_VAL                                                 1
        103        DO_ICALL                                         $52     
        104        SUB                                              ~53     $52, !1
        105        MUL                                              ~54     ~53, 1000
        106        CONCAT                                           ~55     ~54, '%0A'
        107        ECHO                                                     ~55
   49   108        INIT_FCALL                                               'microtime'
        109        SEND_VAL                                                 1
        110        DO_ICALL                                         $56     
        111        ASSIGN                                                   !1, $56
   50   112        ASSIGN                                                   !2, 20000
        113      > JMP                                                      ->131
   51   114    > > FE_RESET_R                                       $59     !0, ->130
        115    > > FE_FETCH_R                                       ~60     $59, !3, ->130
        116    >   ASSIGN                                                   !4, ~60
   52   117        INIT_FCALL                                               'substr'
        118        SEND_VAR                                                 !4
        119        SEND_VAL                                                 0
        120        SEND_VAL                                                 5
        121        DO_ICALL                                         $62     
        122        IS_IDENTICAL                                             $62, 'HTTP_'
        123      > JMPZ                                                     ~63, ->129
   53   124    >   INIT_FCALL                                               'substr'
        125        SEND_VAR                                                 !4
        126        SEND_VAL                                                 5
        127        DO_ICALL                                         $64     
        128        ASSIGN                                                   !4, $64
   51   129    > > JMP                                                      ->115
        130    >   FE_FREE                                                  $59
   50   131    >   POST_DEC                                         ~66     !2
        132      > JMPNZ                                                    ~66, ->114
   57   133    >   INIT_FCALL                                               'microtime'
        134        SEND_VAL                                                 1
        135        DO_ICALL                                         $67     
        136        SUB                                              ~68     $67, !1
        137        MUL                                              ~69     ~68, 1000
        138        CONCAT                                           ~70     ~69, '%0A'
        139        ECHO                                                     ~70
        140      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
129.67 ms | 1413 KiB | 17 Q