3v4l.org

run code in 300+ PHP versions simultaneously
<?php $xml = "<root> <quoteDay> <date>2018-02-26</date> <close>1586,96</close> </quoteDay> <quoteDay> <date>2018-02-23</date> <close>1577,11</close> </quoteDay> <quoteDay> <date>2018-02-22</date> <close>1565,5</close> </quoteDay> </root>"; $xml = simplexml_load_string($xml) or die("Error: Cannot create object"); $id = 0; foreach ($xml->quoteDay as $quoteDay) { $close = number_format(round($quoteDay->close, 0)); echo "Moving average for ".$quoteDay->date.":".PHP_EOL; $current = (float) str_replace(",", ".", $quoteDay->close); $previous = $xml->quoteDay[$id + 1] ? (float) str_replace(",", ".", $xml->quoteDay[$id + 1]->close) : $current; $movingMean = ($current + $previous) / 2; echo $movingMean.PHP_EOL; echo PHP_EOL; $id++; }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 47) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 8
2 jumps found. (Code = 77) Position 1 = 11, Position 2 = 60
Branch analysis from position: 11
2 jumps found. (Code = 78) Position 1 = 12, Position 2 = 60
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 38, Position 2 = 50
Branch analysis from position: 38
1 jumps found. (Code = 42) Position 1 = 51
Branch analysis from position: 51
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
Branch analysis from position: 50
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
Branch analysis from position: 60
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 60
filename:       /in/jmges
function name:  (null)
number of ops:  62
compiled vars:  !0 = $xml, !1 = $id, !2 = $quoteDay, !3 = $close, !4 = $current, !5 = $previous, !6 = $movingMean
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '%3Croot%3E%0A++++%3CquoteDay%3E%0A++++++%3Cdate%3E2018-02-26%3C%2Fdate%3E%0A++++++%3Cclose%3E1586%2C96%3C%2Fclose%3E%0A++++%3C%2FquoteDay%3E%0A++++%3CquoteDay%3E%0A++++++%3Cdate%3E2018-02-23%3C%2Fdate%3E%0A++++++%3Cclose%3E1577%2C11%3C%2Fclose%3E%0A++++%3C%2FquoteDay%3E%0A++++%3CquoteDay%3E%0A++++++%3Cdate%3E2018-02-22%3C%2Fdate%3E%0A++++++%3Cclose%3E1565%2C5%3C%2Fclose%3E%0A++++%3C%2FquoteDay%3E%0A%3C%2Froot%3E'
   17     1        INIT_FCALL                                               'simplexml_load_string'
          2        SEND_VAR                                                 !0
          3        DO_ICALL                                         $8      
          4        ASSIGN                                           ~9      !0, $8
          5      > JMPNZ_EX                                         ~9      ~9, ->8
          6    > > EXIT                                                     'Error%3A+Cannot+create+object'
          7*       BOOL                                             ~9      <true>
   18     8    >   ASSIGN                                                   !1, 0
   19     9        FETCH_OBJ_R                                      ~11     !0, 'quoteDay'
         10      > FE_RESET_R                                       $12     ~11, ->60
         11    > > FE_FETCH_R                                               $12, !2, ->60
   20    12    >   INIT_FCALL                                               'number_format'
         13        INIT_FCALL                                               'round'
         14        FETCH_OBJ_R                                      ~13     !2, 'close'
         15        SEND_VAL                                                 ~13
         16        SEND_VAL                                                 0
         17        DO_ICALL                                         $14     
         18        SEND_VAR                                                 $14
         19        DO_ICALL                                         $15     
         20        ASSIGN                                                   !3, $15
   21    21        FETCH_OBJ_R                                      ~17     !2, 'date'
         22        CONCAT                                           ~18     'Moving+average+for+', ~17
         23        CONCAT                                           ~19     ~18, '%3A'
         24        CONCAT                                           ~20     ~19, '%0A'
         25        ECHO                                                     ~20
   22    26        INIT_FCALL                                               'str_replace'
         27        SEND_VAL                                                 '%2C'
         28        SEND_VAL                                                 '.'
         29        FETCH_OBJ_R                                      ~21     !2, 'close'
         30        SEND_VAL                                                 ~21
         31        DO_ICALL                                         $22     
         32        CAST                                          5  ~23     $22
         33        ASSIGN                                                   !4, ~23
   23    34        ADD                                              ~26     !1, 1
         35        FETCH_OBJ_R                                      ~25     !0, 'quoteDay'
         36        FETCH_DIM_R                                      ~27     ~25, ~26
         37      > JMPZ                                                     ~27, ->50
   24    38    >   INIT_FCALL                                               'str_replace'
         39        SEND_VAL                                                 '%2C'
         40        SEND_VAL                                                 '.'
         41        ADD                                              ~29     !1, 1
         42        FETCH_OBJ_R                                      ~28     !0, 'quoteDay'
         43        FETCH_DIM_R                                      ~30     ~28, ~29
         44        FETCH_OBJ_R                                      ~31     ~30, 'close'
         45        SEND_VAL                                                 ~31
         46        DO_ICALL                                         $32     
         47        CAST                                          5  ~33     $32
         48        QM_ASSIGN                                        ~34     ~33
         49      > JMP                                                      ->51
   25    50    >   QM_ASSIGN                                        ~34     !4
   23    51    >   ASSIGN                                                   !5, ~34
   26    52        ADD                                              ~36     !4, !5
         53        DIV                                              ~37     ~36, 2
         54        ASSIGN                                                   !6, ~37
   27    55        CONCAT                                           ~39     !6, '%0A'
         56        ECHO                                                     ~39
   28    57        ECHO                                                     '%0A'
   29    58        PRE_INC                                                  !1
   19    59      > JMP                                                      ->11
         60    >   FE_FREE                                                  $12
   30    61      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
151.42 ms | 1013 KiB | 17 Q