3v4l.org

run code in 300+ PHP versions simultaneously
<?php $str = <<<XML <xml> <medium val="idealo"> <source val=""> <campaign val=""> <lever3 val="comparateur-idealo" /> <lever2 val="comparateur" /> <lever1 val="trafic_payant" /> </campaign> </source> </medium> <medium val="partaenaire"> <source val=""> <campaign val=""> <lever3 val="partenariat" /> <lever2 val="partenariat" /> <lever1 val="trafic_gratuit" /> </campaign> </source> <source val="magasinauchan"> <campaign val=""> <lever3 val="partenaire_hypers" /> <lever2 val="partenaires_hypers" /> <lever1 val="hypers" /> </campaign> </source> </medium> </xml> XML; $xml = simplexml_load_string($str); $x = $xml->xpath("//campaign/*"); $i =0; foreach ($x as $elt){ echo ++$i . "curent::".$elt.", attributes::".$elt->attributes().", test ancestor::".$elt/ancestors::source[1]."\n"; }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 11, Position 2 = 27
Branch analysis from position: 11
2 jumps found. (Code = 78) Position 1 = 12, Position 2 = 27
Branch analysis from position: 12
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
Branch analysis from position: 27
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 27
filename:       /in/tVYpU
function name:  (null)
number of ops:  29
compiled vars:  !0 = $str, !1 = $xml, !2 = $x, !3 = $i, !4 = $elt
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, '%3Cxml%3E%0A%3Cmedium+val%3D%22idealo%22%3E%0A++++++++%3Csource+val%3D%22%22%3E%0A++++++++++++%3Ccampaign+val%3D%22%22%3E%0A++++++++++++++++%3Clever3+val%3D%22comparateur-idealo%22+%2F%3E%0A++++++++++++++++%3Clever2+val%3D%22comparateur%22+%2F%3E%0A++++++++++++++++%3Clever1+val%3D%22trafic_payant%22+%2F%3E%0A++++++++++++%3C%2Fcampaign%3E%0A++++++++%3C%2Fsource%3E%0A++++%3C%2Fmedium%3E%0A++++%3Cmedium+val%3D%22partaenaire%22%3E%0A++++++++%3Csource+val%3D%22%22%3E%0A++++++++++++%3Ccampaign+val%3D%22%22%3E%0A++++++++++++++++%3Clever3+val%3D%22partenariat%22+%2F%3E%0A++++++++++++++++%3Clever2+val%3D%22partenariat%22+%2F%3E%0A++++++++++++++++%3Clever1+val%3D%22trafic_gratuit%22+%2F%3E%0A++++++++++++%3C%2Fcampaign%3E%0A++++++++%3C%2Fsource%3E%0A++++++++%3Csource+val%3D%22magasinauchan%22%3E%0A++++++++++++%3Ccampaign+val%3D%22%22%3E%0A++++++++++++++++%3Clever3+val%3D%22partenaire_hypers%22+%2F%3E%0A++++++++++++++++%3Clever2+val%3D%22partenaires_hypers%22+%2F%3E%0A++++++++++++++++%3Clever1+val%3D%22hypers%22+%2F%3E%0A++++++++++++%3C%2Fcampaign%3E%0A++++++++%3C%2Fsource%3E%0A++++%3C%2Fmedium%3E%0A%3C%2Fxml%3E'
   32     1        INIT_FCALL                                               'simplexml_load_string'
          2        SEND_VAR                                                 !0
          3        DO_ICALL                                         $6      
          4        ASSIGN                                                   !1, $6
   34     5        INIT_METHOD_CALL                                         !1, 'xpath'
          6        SEND_VAL_EX                                              '%2F%2Fcampaign%2F%2A'
          7        DO_FCALL                                      0  $8      
          8        ASSIGN                                                   !2, $8
   35     9        ASSIGN                                                   !3, 0
   36    10      > FE_RESET_R                                       $11     !2, ->27
         11    > > FE_FETCH_R                                               $11, !4, ->27
   37    12    >   PRE_INC                                          ~12     !3
         13        CONCAT                                           ~13     ~12, 'curent%3A%3A'
         14        CONCAT                                           ~14     ~13, !4
         15        CONCAT                                           ~15     ~14, '%2C+attributes%3A%3A'
         16        INIT_METHOD_CALL                                         !4, 'attributes'
         17        DO_FCALL                                      0  $16     
         18        CONCAT                                           ~17     ~15, $16
         19        CONCAT                                           ~18     ~17, '%2C+test+ancestor%3A%3A'
         20        FETCH_CLASS_CONSTANT                             ~19     'ancestors', 'source'
         21        FETCH_DIM_R                                      ~20     ~19, 1
         22        DIV                                              ~21     !4, ~20
         23        CONCAT                                           ~22     ~18, ~21
         24        CONCAT                                           ~23     ~22, '%0A'
         25        ECHO                                                     ~23
   36    26      > JMP                                                      ->11
         27    >   FE_FREE                                                  $11
   38    28      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
159.88 ms | 1400 KiB | 15 Q