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; 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/q7vrp
function name:  (null)
number of ops:  7
compiled vars:  !0 = $test
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   13     0  E >   ASSIGN                                                   !0, <array>
   14     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/q7vrp
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 = 34
Branch analysis from position: 11
2 jumps found. (Code = 78) Position 1 = 12, Position 2 = 34
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 = 21, Position 2 = 24
Branch analysis from position: 21
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 33
Branch analysis from position: 25
2 jumps found. (Code = 43) Position 1 = 28, Position 2 = 31
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
Branch analysis from position: 31
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
Branch analysis from position: 33
Branch analysis from position: 24
Branch analysis from position: 17
2 jumps found. (Code = 46) Position 1 = 21, Position 2 = 24
Branch analysis from position: 21
Branch analysis from position: 24
Branch analysis from position: 34
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 34
Branch analysis from position: 7
2 jumps found. (Code = 77) Position 1 = 11, Position 2 = 34
Branch analysis from position: 11
Branch analysis from position: 34
filename:       /in/q7vrp
function name:  dgs_strlist
number of ops:  40
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, ->34
         11    > > FE_FETCH_R                                       ~13     $12, !4, ->34
         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        ISSET_ISEMPTY_DIM_OBJ                         0  ~18     !0, !6
         20      > JMPZ_EX                                          ~18     ~18, ->24
         21    >   ISSET_ISEMPTY_DIM_OBJ                         1  ~19     !0, !6
         22        BOOL_NOT                                         ~20     ~19
         23        BOOL                                             ~18     ~20
         24    > > JMPZ                                                     ~18, ->33
         25    >   TYPE_CHECK                                   16  ~21     !5
         26        CONCAT                                           ~22     '+', ~21
         27      > JMPZ                                                     ~22, ->31
         28    >   FETCH_DIM_R                                      ~23     !0, !6
         29        QM_ASSIGN                                        ~24     ~23
         30      > JMP                                                      ->32
         31    >   QM_ASSIGN                                        ~24     !4
         32    >   ASSIGN_OP                                     8          !2, ~24
    7    33    > > JMP                                                      ->11
         34    >   FE_FREE                                                  $12
   11    35        INIT_FCALL                                               'dgs_clean'
         36        SEND_VAR                                                 !2
         37        DO_FCALL                                      0  $26     
         38      > RETURN                                                   $26
   12    39*     > RETURN                                                   null

End of function dgs_strlist

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
165.08 ms | 1403 KiB | 19 Q