3v4l.org

run code in 300+ PHP versions simultaneously
<?php $xmlStr = '<?xml version="1.0"?><toplevel><CompleteSuggestion><suggestion data="ski360"/></CompleteSuggestion><CompleteSuggestion><suggestion data="ski 39"/></CompleteSuggestion><CompleteSuggestion><suggestion data="ski35"/></CompleteSuggestion><CompleteSuggestion><suggestion data="ski 3000"/></CompleteSuggestion><CompleteSuggestion><suggestion data="ski 33"/></CompleteSuggestion><CompleteSuggestion><suggestion data="ski 34"/></CompleteSuggestion></toplevel>'; $xmlObj = simplexml_load_string(utf8_encode($xmlStr)); var_dump($xmlObj); $xmlArr = objectsIntoArray($xmlObj); var_dump($xmlArr); function objectsIntoArray($arrObjData, $arrSkipIndices = array()) { $arrData = array(); if (is_object($arrObjData)) { $arrObjData = get_object_vars($arrObjData); } if (is_array($arrObjData)) { foreach ($arrObjData as $index => $value) { if (is_object($value) || is_array($value)) { $value = objectsIntoArray($value, $arrSkipIndices); } if (in_array($index, $arrSkipIndices)) { continue; } $arrData[$index] = $value; } } return $arrData; }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/rdjvF
function name:  (null)
number of ops:  19
compiled vars:  !0 = $xmlStr, !1 = $xmlObj, !2 = $xmlArr
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '%3C%3Fxml+version%3D%221.0%22%3F%3E%3Ctoplevel%3E%3CCompleteSuggestion%3E%3Csuggestion+data%3D%22ski360%22%2F%3E%3C%2FCompleteSuggestion%3E%3CCompleteSuggestion%3E%3Csuggestion+data%3D%22ski+39%22%2F%3E%3C%2FCompleteSuggestion%3E%3CCompleteSuggestion%3E%3Csuggestion+data%3D%22ski35%22%2F%3E%3C%2FCompleteSuggestion%3E%3CCompleteSuggestion%3E%3Csuggestion+data%3D%22ski+3000%22%2F%3E%3C%2FCompleteSuggestion%3E%3CCompleteSuggestion%3E%3Csuggestion+data%3D%22ski+33%22%2F%3E%3C%2FCompleteSuggestion%3E%3CCompleteSuggestion%3E%3Csuggestion+data%3D%22ski+34%22%2F%3E%3C%2FCompleteSuggestion%3E%3C%2Ftoplevel%3E'
    5     1        INIT_FCALL                                               'simplexml_load_string'
          2        INIT_FCALL                                               'utf8_encode'
          3        SEND_VAR                                                 !0
          4        DO_ICALL                                         $4      
          5        SEND_VAR                                                 $4
          6        DO_ICALL                                         $5      
          7        ASSIGN                                                   !1, $5
    7     8        INIT_FCALL                                               'var_dump'
          9        SEND_VAR                                                 !1
         10        DO_ICALL                                                 
    9    11        INIT_FCALL_BY_NAME                                       'objectsIntoArray'
         12        SEND_VAR_EX                                              !1
         13        DO_FCALL                                      0  $8      
         14        ASSIGN                                                   !2, $8
   11    15        INIT_FCALL                                               'var_dump'
         16        SEND_VAR                                                 !2
         17        DO_ICALL                                                 
   51    18      > RETURN                                                   1

Function objectsintoarray:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 9
Branch analysis from position: 5
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 34
Branch analysis from position: 11
2 jumps found. (Code = 77) Position 1 = 12, Position 2 = 33
Branch analysis from position: 12
2 jumps found. (Code = 78) Position 1 = 13, Position 2 = 33
Branch analysis from position: 13
2 jumps found. (Code = 47) Position 1 = 16, Position 2 = 18
Branch analysis from position: 16
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 24
Branch analysis from position: 19
2 jumps found. (Code = 43) Position 1 = 29, Position 2 = 30
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
Branch analysis from position: 30
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
Branch analysis from position: 24
Branch analysis from position: 18
Branch analysis from position: 33
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 33
Branch analysis from position: 34
Branch analysis from position: 9
filename:       /in/rdjvF
function name:  objectsIntoArray
number of ops:  36
compiled vars:  !0 = $arrObjData, !1 = $arrSkipIndices, !2 = $arrData, !3 = $value, !4 = $index
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   15     0  E >   RECV                                             !0      
          1        RECV_INIT                                        !1      <array>
   19     2        ASSIGN                                                   !2, <array>
   21     3        TYPE_CHECK                                  256          !0
          4      > JMPZ                                                     ~6, ->9
   23     5    >   INIT_FCALL                                               'get_object_vars'
          6        SEND_VAR                                                 !0
          7        DO_ICALL                                         $7      
          8        ASSIGN                                                   !0, $7
   27     9    >   TYPE_CHECK                                  128          !0
         10      > JMPZ                                                     ~9, ->34
   29    11    > > FE_RESET_R                                       $10     !0, ->33
         12    > > FE_FETCH_R                                       ~11     $10, !3, ->33
         13    >   ASSIGN                                                   !4, ~11
   31    14        TYPE_CHECK                                  256  ~13     !3
         15      > JMPNZ_EX                                         ~13     ~13, ->18
         16    >   TYPE_CHECK                                  128  ~14     !3
         17        BOOL                                             ~13     ~14
         18    > > JMPZ                                                     ~13, ->24
   33    19    >   INIT_FCALL_BY_NAME                                       'objectsIntoArray'
         20        SEND_VAR_EX                                              !3
         21        SEND_VAR_EX                                              !1
         22        DO_FCALL                                      0  $15     
         23        ASSIGN                                                   !3, $15
   37    24    >   INIT_FCALL                                               'in_array'
         25        SEND_VAR                                                 !4
         26        SEND_VAR                                                 !1
         27        DO_ICALL                                         $17     
         28      > JMPZ                                                     $17, ->30
   39    29    > > JMP                                                      ->12
   43    30    >   ASSIGN_DIM                                               !2, !4
         31        OP_DATA                                                  !3
   29    32      > JMP                                                      ->12
         33    >   FE_FREE                                                  $10
   49    34    > > RETURN                                                   !2
   51    35*     > RETURN                                                   null

End of function objectsintoarray

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
173.41 ms | 1400 KiB | 23 Q