3v4l.org

run code in 300+ PHP versions simultaneously
<?php $X = array( 'ALLUSERSPROFILE' => '', 'APPDATA' => '', 'COMMANDER_DRIVE' => '', 'COMMANDER_EXE' => '', 'COMMANDER_INI' => '', 'COMMANDER_PATH' => '', 'CommonProgramFiles' => '', 'CommonProgramFiles(x86)' => '', 'CommonProgramW6432' => '', 'COMPUTERNAME' => '', 'ComSpec' => '', 'EMAIL' => '', 'FP_NO_HOST_CHECK' => '', 'HOMEDRIVE' => '', 'HOMEPATH' => '', 'LOCALAPPDATA' => '', 'LOGONSERVER' => '', 'NUMBER_OF_PROCESSORS' => '', 'OS' => '', 'Path' => '', 'PATHEXT' => '', 'PROCESSOR_ARCHITECTURE' => '', 'PROCESSOR_ARCHITEW6432' => '', 'PROCESSOR_IDENTIFIER' => '', 'PROCESSOR_LEVEL' => '', 'PROCESSOR_REVISION' => '', 'ProgramData' => '', 'ProgramFiles' => '', 'ProgramFiles(x86)' => '', 'ProgramW6432' => '', 'PROMPT' => '', 'PSModulePath' => '', 'PUBLIC' => '', 'SESSIONNAME' => '', 'SystemDrive' => '', 'SystemRoot' => '', 'TEMP' => '', 'TMP' => '', 'USERDOMAIN' => '', 'USERDOMAIN_ROAMINGPROFILE' => '', 'USERNAME' => '', 'USERPROFILE' => '', 'VBOX_INSTALL_PATH' => '', 'VBOX_MSI_INSTALL_PATH' => '', 'windir' => '', 'HTTP_COOKIE' => '', 'HTTP_ACCEPT_LANGUAGE' => '', 'HTTP_ACCEPT_ENCODING' => '', 'HTTP_REFERER' => '', 'HTTP_USER_AGENT' => '', 'HTTP_ACCEPT' => '', 'HTTP_CACHE_CONTROL' => '', 'HTTP_CONNECTION' => '', 'HTTP_HOST' => '', 'SCRIPT_FILENAME' => '', 'REDIRECT_STATUS' => '', 'SERVER_NAME' => '', 'SERVER_PORT' => '', 'SERVER_ADDR' => '', 'REMOTE_PORT' => '', 'REMOTE_ADDR' => '', 'SERVER_SOFTWARE' => '', 'GATEWAY_INTERFACE' => '', 'SERVER_PROTOCOL' => '', 'DOCUMENT_ROOT' => '', 'DOCUMENT_URI' => '', 'REQUEST_URI' => '', 'SCRIPT_NAME' => '', 'CONTENT_LENGTH' => '', 'CONTENT_TYPE' => '', 'REQUEST_METHOD' => '', 'QUERY_STRING' => '', 'FCGI_ROLE' => '', 'PHP_SELF' => '', 'REQUEST_TIME_FLOAT' => '', 'REQUEST_TIME' => '', ); $time = microtime(true); for ($i = 0; $i < 10000; $i++) { $array = []; foreach ($X as $key => $value) { if (0 === strpos($key, 'HTTP_')) { $array[] = $key; } } } var_dump($array, microtime(true) - $time);
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 = 7
Branch analysis from position: 24
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
2 jumps found. (Code = 77) Position 1 = 9, Position 2 = 20
Branch analysis from position: 9
2 jumps found. (Code = 78) Position 1 = 10, Position 2 = 20
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 19
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
Branch analysis from position: 19
Branch analysis from position: 20
2 jumps found. (Code = 44) Position 1 = 24, Position 2 = 7
Branch analysis from position: 24
Branch analysis from position: 7
Branch analysis from position: 20
filename:       /in/X8sqR
function name:  (null)
number of ops:  33
compiled vars:  !0 = $X, !1 = $time, !2 = $i, !3 = $array, !4 = $value, !5 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
   82     1        INIT_FCALL                                               'microtime'
          2        SEND_VAL                                                 <true>
          3        DO_ICALL                                         $7      
          4        ASSIGN                                                   !1, $7
   84     5        ASSIGN                                                   !2, 0
          6      > JMP                                                      ->22
   85     7    >   ASSIGN                                                   !3, <array>
   86     8      > FE_RESET_R                                       $11     !0, ->20
          9    > > FE_FETCH_R                                       ~12     $11, !4, ->20
         10    >   ASSIGN                                                   !5, ~12
   87    11        INIT_FCALL                                               'strpos'
         12        SEND_VAR                                                 !5
         13        SEND_VAL                                                 'HTTP_'
         14        DO_ICALL                                         $14     
         15        IS_IDENTICAL                                             $14, 0
         16      > JMPZ                                                     ~15, ->19
   88    17    >   ASSIGN_DIM                                               !3
         18        OP_DATA                                                  !5
   86    19    > > JMP                                                      ->9
         20    >   FE_FREE                                                  $11
   84    21        PRE_INC                                                  !2
         22    >   IS_SMALLER                                               !2, 10000
         23      > JMPNZ                                                    ~18, ->7
   93    24    >   INIT_FCALL                                               'var_dump'
         25        SEND_VAR                                                 !3
         26        INIT_FCALL                                               'microtime'
         27        SEND_VAL                                                 <true>
         28        DO_ICALL                                         $19     
         29        SUB                                              ~20     $19, !1
         30        SEND_VAL                                                 ~20
         31        DO_ICALL                                                 
         32      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
210.83 ms | 1396 KiB | 19 Q