3v4l.org

run code in 300+ PHP versions simultaneously
<?php 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/FbuSO
function name:  (null)
number of ops:  7
compiled vars:  !0 = $test
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   10     0  E >   ASSIGN                                                   !0, <array>
   11     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_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/FbuSO
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
-------------------------------------------------------------------------------------
    2     0  E >   RECV                                             !0      
          1        RECV                                             !1      
    3     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
    4    10      > FE_RESET_R                                       $12     !3, ->34
         11    > > FE_FETCH_R                                       ~13     $12, !4, ->34
         12    >   ASSIGN                                                   !5, ~13
    5    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
    6    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
    4    33    > > JMP                                                      ->11
         34    >   FE_FREE                                                  $12
    8    35        INIT_FCALL_BY_NAME                                       'dgs_clean'
         36        SEND_VAR_EX                                              !2
         37        DO_FCALL                                      0  $26     
         38      > RETURN                                                   $26
    9    39*     > RETURN                                                   null

End of function dgs_strlist

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
152.42 ms | 1407 KiB | 14 Q