3v4l.org

run code in 300+ PHP versions simultaneously
<?php $xmldoc = new DOMDocument(); $firstname = "myfirstname"; $lastname = "mylastname"; $email = "myemail"; $password = "mypassword"; $data = <<<DATA <?xml version="1.0"?> <Customers> <customer> <custID> 1001 </custID> <fname> Lama </fname> <lname> Lai </lname> <email> test@hotmail.com </email> <password> qwer </password> </customer> </Customers> DATA; $xmldoc->loadXML($data); $customer = $xmldoc->getElementsByTagName("customer"); $customerNew = $xmldoc->createElement("customer"); $customerNewFN = $xmldoc->createElement("fname"); $customerNewFNNode = $xmldoc->createTextNode($firstname); $customerNewFNNode = $customerNewFN->appendChild($customerNewFNNode); $customerNewFN = $customerNew->appendChild($customerNewFN); $customerNewLN = $xmldoc->createElement("lname"); $customerNewLNNode = $xmldoc->createTextNode($lastname); $customerNewLNNode = $customerNewLN->appendChild($customerNewLNNode); $customerNewLN = $customerNew->appendChild($customerNewLN); $customerNewEmail = $xmldoc->createElement("email"); $customerNewEmailNode = $xmldoc->createTextNode($email); $customerNewEmailNode = $customerNewEmail->appendChild($customerNewEmailNode); $customerNewEmail = $customerNew->appendChild($customerNewEmail); $customerNewPass = $xmldoc->createElement("password"); $customerNewPassNode = $xmldoc->createTextNode($password); $customerNewPassNode = $customerNewPass->appendChild($customerNewPassNode); $customerNewPass = $customerNew->appendChild($customerNewPass); $customer->item(0)->parentNode->insertBefore($customerNew); echo $xmldoc->saveXML();
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/ofZgC
function name:  (null)
number of ops:  94
compiled vars:  !0 = $xmldoc, !1 = $firstname, !2 = $lastname, !3 = $email, !4 = $password, !5 = $data, !6 = $customer, !7 = $customerNew, !8 = $customerNewFN, !9 = $customerNewFNNode, !10 = $customerNewLN, !11 = $customerNewLNNode, !12 = $customerNewEmail, !13 = $customerNewEmailNode, !14 = $customerNewPass, !15 = $customerNewPassNode
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   NEW                                              $16     'DOMDocument'
          1        DO_FCALL                                      0          
          2        ASSIGN                                                   !0, $16
    3     3        ASSIGN                                                   !1, 'myfirstname'
    4     4        ASSIGN                                                   !2, 'mylastname'
    5     5        ASSIGN                                                   !3, 'myemail'
    6     6        ASSIGN                                                   !4, 'mypassword'
    7     7        ASSIGN                                                   !5, '%3C%3Fxml+version%3D%221.0%22%3F%3E%0A%3CCustomers%3E%0A%3Ccustomer%3E%0A++++%3CcustID%3E%0A++++++++1001%0A++++%3C%2FcustID%3E%0A++++%3Cfname%3E%0A++++++++Lama%0A++++%3C%2Ffname%3E%0A++++%3Clname%3E%0A++++++++Lai%0A++++%3C%2Flname%3E%0A++++%3Cemail%3E%0A++++++++test%40hotmail.com%0A++++%3C%2Femail%3E%0A++++%3Cpassword%3E%0A++++++++qwer%0A++++%3C%2Fpassword%3E%0A%3C%2Fcustomer%3E%0A%3C%2FCustomers%3E'
   29     8        INIT_METHOD_CALL                                         !0, 'loadXML'
          9        SEND_VAR_EX                                              !5
         10        DO_FCALL                                      0          
   30    11        INIT_METHOD_CALL                                         !0, 'getElementsByTagName'
         12        SEND_VAL_EX                                              'customer'
         13        DO_FCALL                                      0  $25     
         14        ASSIGN                                                   !6, $25
   31    15        INIT_METHOD_CALL                                         !0, 'createElement'
         16        SEND_VAL_EX                                              'customer'
         17        DO_FCALL                                      0  $27     
         18        ASSIGN                                                   !7, $27
   32    19        INIT_METHOD_CALL                                         !0, 'createElement'
         20        SEND_VAL_EX                                              'fname'
         21        DO_FCALL                                      0  $29     
         22        ASSIGN                                                   !8, $29
   33    23        INIT_METHOD_CALL                                         !0, 'createTextNode'
         24        SEND_VAR_EX                                              !1
         25        DO_FCALL                                      0  $31     
         26        ASSIGN                                                   !9, $31
   34    27        INIT_METHOD_CALL                                         !8, 'appendChild'
         28        SEND_VAR_EX                                              !9
         29        DO_FCALL                                      0  $33     
         30        ASSIGN                                                   !9, $33
   35    31        INIT_METHOD_CALL                                         !7, 'appendChild'
         32        SEND_VAR_EX                                              !8
         33        DO_FCALL                                      0  $35     
         34        ASSIGN                                                   !8, $35
   36    35        INIT_METHOD_CALL                                         !0, 'createElement'
         36        SEND_VAL_EX                                              'lname'
         37        DO_FCALL                                      0  $37     
         38        ASSIGN                                                   !10, $37
   37    39        INIT_METHOD_CALL                                         !0, 'createTextNode'
         40        SEND_VAR_EX                                              !2
         41        DO_FCALL                                      0  $39     
         42        ASSIGN                                                   !11, $39
   38    43        INIT_METHOD_CALL                                         !10, 'appendChild'
         44        SEND_VAR_EX                                              !11
         45        DO_FCALL                                      0  $41     
         46        ASSIGN                                                   !11, $41
   39    47        INIT_METHOD_CALL                                         !7, 'appendChild'
         48        SEND_VAR_EX                                              !10
         49        DO_FCALL                                      0  $43     
         50        ASSIGN                                                   !10, $43
   40    51        INIT_METHOD_CALL                                         !0, 'createElement'
         52        SEND_VAL_EX                                              'email'
         53        DO_FCALL                                      0  $45     
         54        ASSIGN                                                   !12, $45
   41    55        INIT_METHOD_CALL                                         !0, 'createTextNode'
         56        SEND_VAR_EX                                              !3
         57        DO_FCALL                                      0  $47     
         58        ASSIGN                                                   !13, $47
   42    59        INIT_METHOD_CALL                                         !12, 'appendChild'
         60        SEND_VAR_EX                                              !13
         61        DO_FCALL                                      0  $49     
         62        ASSIGN                                                   !13, $49
   43    63        INIT_METHOD_CALL                                         !7, 'appendChild'
         64        SEND_VAR_EX                                              !12
         65        DO_FCALL                                      0  $51     
         66        ASSIGN                                                   !12, $51
   44    67        INIT_METHOD_CALL                                         !0, 'createElement'
         68        SEND_VAL_EX                                              'password'
         69        DO_FCALL                                      0  $53     
         70        ASSIGN                                                   !14, $53
   45    71        INIT_METHOD_CALL                                         !0, 'createTextNode'
         72        SEND_VAR_EX                                              !4
         73        DO_FCALL                                      0  $55     
         74        ASSIGN                                                   !15, $55
   46    75        INIT_METHOD_CALL                                         !14, 'appendChild'
         76        SEND_VAR_EX                                              !15
         77        DO_FCALL                                      0  $57     
         78        ASSIGN                                                   !15, $57
   47    79        INIT_METHOD_CALL                                         !7, 'appendChild'
         80        SEND_VAR_EX                                              !14
         81        DO_FCALL                                      0  $59     
         82        ASSIGN                                                   !14, $59
   48    83        INIT_METHOD_CALL                                         !6, 'item'
         84        SEND_VAL_EX                                              0
         85        DO_FCALL                                      0  $61     
         86        FETCH_OBJ_R                                      ~62     $61, 'parentNode'
         87        INIT_METHOD_CALL                                         ~62, 'insertBefore'
         88        SEND_VAR_EX                                              !7
         89        DO_FCALL                                      0          
   49    90        INIT_METHOD_CALL                                         !0, 'saveXML'
         91        DO_FCALL                                      0  $64     
         92        ECHO                                                     $64
         93      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
281.94 ms | 1016 KiB | 13 Q