3v4l.org

run code in 300+ PHP versions simultaneously
<?php $xml = '<?xml version="1.0" encoding="UTF-8"?> <project name="Esurance 365 Portal"> <elements> <element name="folderone" path="forms/folderone"> <folder function="model">models</folder> <folder function="controller">controllers</folder> <folder function="view">views</folder> </element> </elements> </project>'; $dom = new DOMDocument(); $dom->preserveWhiteSpace = false; $dom->formatOutput = true; $dom->loadXml($xml); $element = $dom->getElementsByTagName("element")->item(0); $clone = $element->cloneNode(true); $clone->setAttribute("name", "foldertwo"); $clone->setAttribute("path", "forms/foldertwo"); $folder = $clone->getElementsByTagName("folder"); $folder->item(0)->nodeValue = "modelstwo"; $folder->item(1)->nodeValue = "controllerstwo"; $folder->item(2)->nodeValue = "viewstwo"; $element->parentNode->insertBefore($clone, $element); $xml = $dom->saveXml(); print_r($xml);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/TlQso
function name:  (null)
number of ops:  64
compiled vars:  !0 = $xml, !1 = $dom, !2 = $element, !3 = $clone, !4 = $folder
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%0A%3Cproject+name%3D%22Esurance+365+Portal%22%3E%0A++++%3Celements%3E%0A++++++++%3Celement+name%3D%22folderone%22+path%3D%22forms%2Ffolderone%22%3E%0A++++++++++++%3Cfolder+function%3D%22model%22%3Emodels%3C%2Ffolder%3E%0A++++++++++++%3Cfolder+function%3D%22controller%22%3Econtrollers%3C%2Ffolder%3E%0A++++++++++++%3Cfolder+function%3D%22view%22%3Eviews%3C%2Ffolder%3E%0A++++++++%3C%2Felement%3E%0A++++%3C%2Felements%3E%0A%3C%2Fproject%3E'
   14     1        NEW                                              $6      'DOMDocument'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !1, $6
   15     4        ASSIGN_OBJ                                               !1, 'preserveWhiteSpace'
          5        OP_DATA                                                  <false>
   16     6        ASSIGN_OBJ                                               !1, 'formatOutput'
          7        OP_DATA                                                  <true>
   17     8        INIT_METHOD_CALL                                         !1, 'loadXml'
          9        SEND_VAR_EX                                              !0
         10        DO_FCALL                                      0          
   18    11        INIT_METHOD_CALL                                         !1, 'getElementsByTagName'
         12        SEND_VAL_EX                                              'element'
         13        DO_FCALL                                      0  $12     
         14        INIT_METHOD_CALL                                         $12, 'item'
         15        SEND_VAL_EX                                              0
         16        DO_FCALL                                      0  $13     
         17        ASSIGN                                                   !2, $13
   19    18        INIT_METHOD_CALL                                         !2, 'cloneNode'
         19        SEND_VAL_EX                                              <true>
         20        DO_FCALL                                      0  $15     
         21        ASSIGN                                                   !3, $15
   20    22        INIT_METHOD_CALL                                         !3, 'setAttribute'
         23        SEND_VAL_EX                                              'name'
         24        SEND_VAL_EX                                              'foldertwo'
         25        DO_FCALL                                      0          
   21    26        INIT_METHOD_CALL                                         !3, 'setAttribute'
         27        SEND_VAL_EX                                              'path'
         28        SEND_VAL_EX                                              'forms%2Ffoldertwo'
         29        DO_FCALL                                      0          
   22    30        INIT_METHOD_CALL                                         !3, 'getElementsByTagName'
         31        SEND_VAL_EX                                              'folder'
         32        DO_FCALL                                      0  $19     
         33        ASSIGN                                                   !4, $19
   23    34        INIT_METHOD_CALL                                         !4, 'item'
         35        SEND_VAL_EX                                              0
         36        DO_FCALL                                      0  $21     
         37        SEPARATE                                         $21     $21
         38        ASSIGN_OBJ                                               $21, 'nodeValue'
         39        OP_DATA                                                  'modelstwo'
   24    40        INIT_METHOD_CALL                                         !4, 'item'
         41        SEND_VAL_EX                                              1
         42        DO_FCALL                                      0  $23     
         43        SEPARATE                                         $23     $23
         44        ASSIGN_OBJ                                               $23, 'nodeValue'
         45        OP_DATA                                                  'controllerstwo'
   25    46        INIT_METHOD_CALL                                         !4, 'item'
         47        SEND_VAL_EX                                              2
         48        DO_FCALL                                      0  $25     
         49        SEPARATE                                         $25     $25
         50        ASSIGN_OBJ                                               $25, 'nodeValue'
         51        OP_DATA                                                  'viewstwo'
   26    52        FETCH_OBJ_R                                      ~27     !2, 'parentNode'
         53        INIT_METHOD_CALL                                         ~27, 'insertBefore'
         54        SEND_VAR_EX                                              !3
         55        SEND_VAR_EX                                              !2
         56        DO_FCALL                                      0          
   27    57        INIT_METHOD_CALL                                         !1, 'saveXml'
         58        DO_FCALL                                      0  $29     
         59        ASSIGN                                                   !0, $29
   28    60        INIT_FCALL                                               'print_r'
         61        SEND_VAR                                                 !0
         62        DO_ICALL                                                 
         63      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
169.1 ms | 1400 KiB | 15 Q