3v4l.org

run code in 300+ PHP versions simultaneously
<?php $doc = new DOMDocument; $doc->loadHTML('<html><body id="x"></body></html>'); $body = $doc->getElementById('x'); $doc2 = new DOMDocument; $div = $doc2->createElement('div'); $div->setAttribute('id', 'y'); $div = $doc->importNode( $div ); echo '1: ' . ( $doc->getElementById('y') ? $doc->getElementById('y')->tagName : 'null' ) . PHP_EOL; $body->appendChild( $div ); echo '2: ' . ( $doc->getElementById('y') ? $doc->getElementById('y')->tagName : 'null' ) . PHP_EOL; echo PHP_EOL . $doc->saveHTML();
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 29, Position 2 = 35
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 36
Branch analysis from position: 36
2 jumps found. (Code = 43) Position 1 = 46, Position 2 = 52
Branch analysis from position: 46
1 jumps found. (Code = 42) Position 1 = 53
Branch analysis from position: 53
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 52
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 35
2 jumps found. (Code = 43) Position 1 = 46, Position 2 = 52
Branch analysis from position: 46
Branch analysis from position: 52
filename:       /in/Lq7eE
function name:  (null)
number of ops:  61
compiled vars:  !0 = $doc, !1 = $body, !2 = $doc2, !3 = $div
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   3     0  E >   NEW                                              $4      :117
         1        DO_FCALL                                      0          
         2        QM_ASSIGN                                                !0
   4     3        INIT_METHOD_CALL                                         !0, 'loadHTML'
         4        SEND_VAL_EX                                              '%3Chtml%3E%3Cbody+id%3D%22x%22%3E%3C%2Fbody%3E%3C%2Fhtml%3E'
         5        DO_FCALL                                      0          
   5     6        INIT_METHOD_CALL                                         !0, 'getElementById'
         7        SEND_VAL_EX                                              'x'
         8        DO_FCALL                                      0  $8      
         9        QM_ASSIGN                                                !1
   7    10        NEW                                              $10     :105
        11        DO_FCALL                                      0          
        12        QM_ASSIGN                                                !2
   8    13        INIT_METHOD_CALL                                         !2, 'createElement'
        14        SEND_VAL_EX                                              'div'
        15        DO_FCALL                                      0  $13     
        16        QM_ASSIGN                                                !3
   9    17        INIT_METHOD_CALL                                         !3, 'setAttribute'
        18        SEND_VAL_EX                                              'id'
        19        SEND_VAL_EX                                              'y'
        20        DO_FCALL                                      0          
  11    21        INIT_METHOD_CALL                                         !0, 'importNode'
        22        SEND_VAR_EX                                              !3
        23        DO_FCALL                                      0  $16     
        24        QM_ASSIGN                                                !3
  12    25        INIT_METHOD_CALL                                         !0, 'getElementById'
        26        SEND_VAL_EX                                              'y'
        27        DO_FCALL                                      0  $18     
        28      > JMPZ                                                     $18, ->35
        29    >   INIT_METHOD_CALL                                         !0, 'getElementById'
        30        SEND_VAL_EX                                              'y'
        31        DO_FCALL                                      0  $19     
        32        FETCH_OBJ_R                                      ~20     $19, 'tagName'
        33        ASSIGN_BW_OR                                  0  ~21     ~20
        34      > JMP                                                      ->36
        35    >   ASSIGN_BW_OR                                  0  ~21     'null'
        36    >   CONCAT                                           ~22     '1%3A+', ~21
        37        CONCAT                                           ~23     ~22, '%0A'
        38        ASSIGN_OBJ                                               ~23
  13    39        INIT_METHOD_CALL                                         !1, 'appendChild'
        40        SEND_VAR_EX                                              !3
        41        DO_FCALL                                      0          
  14    42        INIT_METHOD_CALL                                         !0, 'getElementById'
        43        SEND_VAL_EX                                              'y'
        44        DO_FCALL                                      0  $25     
        45      > JMPZ                                                     $25, ->52
        46    >   INIT_METHOD_CALL                                         !0, 'getElementById'
        47        SEND_VAL_EX                                              'y'
        48        DO_FCALL                                      0  $26     
        49        FETCH_OBJ_R                                      ~27     $26, 'tagName'
        50        ASSIGN_BW_OR                                  0  ~28     ~27
        51      > JMP                                                      ->53
        52    >   ASSIGN_BW_OR                                  0  ~28     'null'
        53    >   CONCAT                                           ~29     '2%3A+', ~28
        54        CONCAT                                           ~30     ~29, '%0A'
        55        ASSIGN_OBJ                                               ~30
  15    56        INIT_METHOD_CALL                                         !0, 'saveHTML'
        57        DO_FCALL                                      0  $31     
        58        CONCAT                                           ~32     '%0A', $31
        59        ASSIGN_OBJ                                               ~32
        60      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
12.79 ms | 412 KiB | 7 Q