3v4l.org

run code in 300+ PHP versions simultaneously
<?php function dgs_clean( $str ) { return trim(preg_replace('/\s\s+/', ' ', $str)); } function dgs_strlist($array, $keys) { $out = ''; $_k = (is_array($keys))?$keys:array($keys); foreach ($_k as $k => $v) { $key = (is_int($k))?$v:$k; echo "$key\n"; if (isset($array[$key]) && !empty($array[$key])) $out .= ' '.(is_int($k))?$array[$key]:$v; } return dgs_clean($out); } $test = array('name' => 'myInput', 'value' => '123', 'type' => 'text', '_prepend' => '@', 'class' => 'component inline'); echo dgs_strlist($test, array('class', '_prepend' => 'input-prepend'));
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/eg4AB
function name:  (null)
number of ops:  7
compiled vars:  !0 = $test
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   14     0  E >   ASSIGN                                                   !0, <array>
   15     1        INIT_FCALL                                               'dgs_strlist'
          2        SEND_VAR                                                 !0
          3        SEND_VAL                                                 <array>
          4        DO_FCALL                                      0  $2      
          5        ECHO                                                     $2
          6      > RETURN                                                   1

Function dgs_clean:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/eg4AB
function name:  dgs_clean
number of ops:  11
compiled vars:  !0 = $str
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   RECV                                             !0      
    3     1        INIT_FCALL                                               'trim'
          2        INIT_FCALL                                               'preg_replace'
          3        SEND_VAL                                                 '%2F%5Cs%5Cs%2B%2F'
          4        SEND_VAL                                                 '+'
          5        SEND_VAR                                                 !0
          6        DO_ICALL                                         $1      
          7        SEND_VAR                                                 $1
          8        DO_ICALL                                         $2      
          9      > RETURN                                                   $2
    4    10*     > RETURN                                                   null

End of function dgs_clean

Function dgs_strlist:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 7
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
2 jumps found. (Code = 77) Position 1 = 11, Position 2 = 37
Branch analysis from position: 11
2 jumps found. (Code = 78) Position 1 = 12, Position 2 = 37
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 17
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 18
Branch analysis from position: 18
2 jumps found. (Code = 46) Position 1 = 24, Position 2 = 27
Branch analysis from position: 24
2 jumps found. (Code = 43) Position 1 = 28, Position 2 = 36
Branch analysis from position: 28
2 jumps found. (Code = 43) Position 1 = 31, Position 2 = 34
Branch analysis from position: 31
1 jumps found. (Code = 42) Position 1 = 35
Branch analysis from position: 35
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
Branch analysis from position: 34
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
Branch analysis from position: 36
Branch analysis from position: 27
Branch analysis from position: 17
2 jumps found. (Code = 46) Position 1 = 24, Position 2 = 27
Branch analysis from position: 24
Branch analysis from position: 27
Branch analysis from position: 37
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 37
Branch analysis from position: 7
2 jumps found. (Code = 77) Position 1 = 11, Position 2 = 37
Branch analysis from position: 11
Branch analysis from position: 37
filename:       /in/eg4AB
function name:  dgs_strlist
number of ops:  43
compiled vars:  !0 = $array, !1 = $keys, !2 = $out, !3 = $_k, !4 = $v, !5 = $k, !6 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    5     0  E >   RECV                                             !0      
          1        RECV                                             !1      
    6     2        ASSIGN                                                   !2, ''
          3        TYPE_CHECK                                  128          !1
          4      > JMPZ                                                     ~8, ->7
          5    >   QM_ASSIGN                                        ~9      !1
          6      > JMP                                                      ->9
          7    >   INIT_ARRAY                                       ~10     !1
          8        QM_ASSIGN                                        ~9      ~10
          9    >   ASSIGN                                                   !3, ~9
    7    10      > FE_RESET_R                                       $12     !3, ->37
         11    > > FE_FETCH_R                                       ~13     $12, !4, ->37
         12    >   ASSIGN                                                   !5, ~13
    8    13        TYPE_CHECK                                   16          !5
         14      > JMPZ                                                     ~15, ->17
         15    >   QM_ASSIGN                                        ~16     !4
         16      > JMP                                                      ->18
         17    >   QM_ASSIGN                                        ~16     !5
         18    >   ASSIGN                                                   !6, ~16
    9    19        NOP                                                      
         20        FAST_CONCAT                                      ~18     !6, '%0A'
         21        ECHO                                                     ~18
   10    22        ISSET_ISEMPTY_DIM_OBJ                         0  ~19     !0, !6
         23      > JMPZ_EX                                          ~19     ~19, ->27
         24    >   ISSET_ISEMPTY_DIM_OBJ                         1  ~20     !0, !6
         25        BOOL_NOT                                         ~21     ~20
         26        BOOL                                             ~19     ~21
         27    > > JMPZ                                                     ~19, ->36
         28    >   TYPE_CHECK                                   16  ~22     !5
         29        CONCAT                                           ~23     '+', ~22
         30      > JMPZ                                                     ~23, ->34
         31    >   FETCH_DIM_R                                      ~24     !0, !6
         32        QM_ASSIGN                                        ~25     ~24
         33      > JMP                                                      ->35
         34    >   QM_ASSIGN                                        ~25     !4
         35    >   ASSIGN_OP                                     8          !2, ~25
    7    36    > > JMP                                                      ->11
         37    >   FE_FREE                                                  $12
   12    38        INIT_FCALL                                               'dgs_clean'
         39        SEND_VAR                                                 !2
         40        DO_FCALL                                      0  $27     
         41      > RETURN                                                   $27
   13    42*     > RETURN                                                   null

End of function dgs_strlist

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
166.08 ms | 1407 KiB | 19 Q