3v4l.org

run code in 300+ PHP versions simultaneously
<?php var_dump(decoct(umask(22))); $srcDir = '/tmp/files'; mkdir($srcDir); foreach([1, 2] as $i){ $file = tempnam($srcDir, 'test'); printf("File$i - %o\n", stat($file)['mode']); } $phar = new \PharData('/tmp/test.tar', null, null, \Phar::TAR); $phar->buildFromIterator(new \RecursiveDirectoryIterator($srcDir, \FilesystemIterator::SKIP_DOTS), $srcDir); $phar->addFile($file, 'added-with-add-file'); $phar->extractTo('/tmp/pharFiles'); foreach(new \RecursiveDirectoryIterator('/tmp/pharFiles', \FilesystemIterator::SKIP_DOTS) as $iFile) { printf('From ' . ($iFile->getFilename() === 'added-with-add-file' ? 'Iterator':'addFile'). " - %o\n", $iFile->getPerms()); }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 14, Position 2 = 32
Branch analysis from position: 14
2 jumps found. (Code = 78) Position 1 = 15, Position 2 = 32
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 14
Branch analysis from position: 14
Branch analysis from position: 32
2 jumps found. (Code = 77) Position 1 = 60, Position 2 = 77
Branch analysis from position: 60
2 jumps found. (Code = 78) Position 1 = 61, Position 2 = 77
Branch analysis from position: 61
2 jumps found. (Code = 43) Position 1 = 66, Position 2 = 68
Branch analysis from position: 66
1 jumps found. (Code = 42) Position 1 = 69
Branch analysis from position: 69
1 jumps found. (Code = 42) Position 1 = 60
Branch analysis from position: 60
Branch analysis from position: 68
1 jumps found. (Code = 42) Position 1 = 60
Branch analysis from position: 60
Branch analysis from position: 77
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 77
Branch analysis from position: 32
filename:       /in/fbqTl
function name:  (null)
number of ops:  79
compiled vars:  !0 = $srcDir, !1 = $i, !2 = $file, !3 = $phar, !4 = $iFile
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   INIT_FCALL                                               'var_dump'
          1        INIT_FCALL                                               'decoct'
          2        INIT_FCALL                                               'umask'
          3        SEND_VAL                                                 22
          4        DO_ICALL                                         $5      
          5        SEND_VAR                                                 $5
          6        DO_ICALL                                         $6      
          7        SEND_VAR                                                 $6
          8        DO_ICALL                                                 
    3     9        ASSIGN                                                   !0, '%2Ftmp%2Ffiles'
    4    10        INIT_FCALL                                               'mkdir'
         11        SEND_VAR                                                 !0
         12        DO_ICALL                                                 
    5    13      > FE_RESET_R                                       $10     <array>, ->32
         14    > > FE_FETCH_R                                               $10, !1, ->32
    6    15    >   INIT_FCALL                                               'tempnam'
         16        SEND_VAR                                                 !0
         17        SEND_VAL                                                 'test'
         18        DO_ICALL                                         $11     
         19        ASSIGN                                                   !2, $11
    7    20        INIT_FCALL                                               'printf'
         21        ROPE_INIT                                     3  ~14     'File'
         22        ROPE_ADD                                      1  ~14     ~14, !1
         23        ROPE_END                                      2  ~13     ~14, '+-+%25o%0A'
         24        SEND_VAL                                                 ~13
         25        INIT_FCALL                                               'stat'
         26        SEND_VAR                                                 !2
         27        DO_ICALL                                         $16     
         28        FETCH_DIM_R                                      ~17     $16, 'mode'
         29        SEND_VAL                                                 ~17
         30        DO_ICALL                                                 
    5    31      > JMP                                                      ->14
         32    >   FE_FREE                                                  $10
    9    33        NEW                                              $19     'PharData'
         34        SEND_VAL_EX                                              '%2Ftmp%2Ftest.tar'
         35        SEND_VAL_EX                                              null
         36        SEND_VAL_EX                                              null
         37        SEND_VAL_EX                                              2
         38        DO_FCALL                                      0          
         39        ASSIGN                                                   !3, $19
   10    40        INIT_METHOD_CALL                                         !3, 'buildFromIterator'
         41        NEW                                              $22     'RecursiveDirectoryIterator'
         42        SEND_VAR_EX                                              !0
         43        SEND_VAL_EX                                              4096
         44        DO_FCALL                                      0          
         45        SEND_VAR_NO_REF_EX                                       $22
         46        SEND_VAR_EX                                              !0
         47        DO_FCALL                                      0          
   12    48        INIT_METHOD_CALL                                         !3, 'addFile'
         49        SEND_VAR_EX                                              !2
         50        SEND_VAL_EX                                              'added-with-add-file'
         51        DO_FCALL                                      0          
   13    52        INIT_METHOD_CALL                                         !3, 'extractTo'
         53        SEND_VAL_EX                                              '%2Ftmp%2FpharFiles'
         54        DO_FCALL                                      0          
   15    55        NEW                                              $27     'RecursiveDirectoryIterator'
         56        SEND_VAL_EX                                              '%2Ftmp%2FpharFiles'
         57        SEND_VAL_EX                                              4096
         58        DO_FCALL                                      0          
         59      > FE_RESET_R                                       $29     $27, ->77
         60    > > FE_FETCH_R                                               $29, !4, ->77
   16    61    >   INIT_FCALL                                               'printf'
         62        INIT_METHOD_CALL                                         !4, 'getFilename'
         63        DO_FCALL                                      0  $30     
         64        IS_IDENTICAL                                             $30, 'added-with-add-file'
         65      > JMPZ                                                     ~31, ->68
         66    >   QM_ASSIGN                                        ~32     'Iterator'
         67      > JMP                                                      ->69
         68    >   QM_ASSIGN                                        ~32     'addFile'
         69    >   CONCAT                                           ~33     'From+', ~32
         70        CONCAT                                           ~34     ~33, '+-+%25o%0A'
         71        SEND_VAL                                                 ~34
         72        INIT_METHOD_CALL                                         !4, 'getPerms'
         73        DO_FCALL                                      0  $35     
         74        SEND_VAR                                                 $35
         75        DO_ICALL                                                 
   15    76      > JMP                                                      ->60
         77    >   FE_FREE                                                  $29
   17    78      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
164.84 ms | 1400 KiB | 27 Q