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; $daysInMovingMean = 3; foreach ($xml->quoteDay as $quoteDay) { echo "Moving average for ".$quoteDay->date.":".PHP_EOL; $current = (float) str_replace(",", ".", $quoteDay->close); $sum = 0; for ($days = 0; $days < $daysInMovingMean; $days++) { if (!$xml->quoteDay[$id + $days]) break; $sum += (float) str_replace(",", ".", $xml->quoteDay[$id + $days]->close); } $sumovingMean = $sum / $days; echo $sumovingMean.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 = 12, Position 2 = 56
Branch analysis from position: 12
2 jumps found. (Code = 78) Position 1 = 13, Position 2 = 56
Branch analysis from position: 13
1 jumps found. (Code = 42) Position 1 = 47
Branch analysis from position: 47
2 jumps found. (Code = 44) Position 1 = 49, Position 2 = 29
Branch analysis from position: 49
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
Branch analysis from position: 29
2 jumps found. (Code = 43) Position 1 = 34, Position 2 = 35
Branch analysis from position: 34
1 jumps found. (Code = 42) Position 1 = 49
Branch analysis from position: 49
Branch analysis from position: 35
2 jumps found. (Code = 44) Position 1 = 49, Position 2 = 29
Branch analysis from position: 49
Branch analysis from position: 29
Branch analysis from position: 56
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 56
filename:       /in/VGhhQ
function name:  (null)
number of ops:  58
compiled vars:  !0 = $xml, !1 = $id, !2 = $daysInMovingMean, !3 = $quoteDay, !4 = $current, !5 = $sum, !6 = $days, !7 = $sumovingMean
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                                         $9      
          4        ASSIGN                                           ~10     !0, $9
          5      > JMPNZ_EX                                         ~10     ~10, ->8
          6    > > EXIT                                                     'Error%3A+Cannot+create+object'
          7*       BOOL                                             ~10     <true>
   18     8    >   ASSIGN                                                   !1, 0
   19     9        ASSIGN                                                   !2, 3
   20    10        FETCH_OBJ_R                                      ~13     !0, 'quoteDay'
         11      > FE_RESET_R                                       $14     ~13, ->56
         12    > > FE_FETCH_R                                               $14, !3, ->56
   21    13    >   FETCH_OBJ_R                                      ~15     !3, 'date'
         14        CONCAT                                           ~16     'Moving+average+for+', ~15
         15        CONCAT                                           ~17     ~16, '%3A'
         16        CONCAT                                           ~18     ~17, '%0A'
         17        ECHO                                                     ~18
   22    18        INIT_FCALL                                               'str_replace'
         19        SEND_VAL                                                 '%2C'
         20        SEND_VAL                                                 '.'
         21        FETCH_OBJ_R                                      ~19     !3, 'close'
         22        SEND_VAL                                                 ~19
         23        DO_ICALL                                         $20     
         24        CAST                                          5  ~21     $20
         25        ASSIGN                                                   !4, ~21
   23    26        ASSIGN                                                   !5, 0
   24    27        ASSIGN                                                   !6, 0
         28      > JMP                                                      ->47
   25    29    >   ADD                                              ~26     !1, !6
         30        FETCH_OBJ_R                                      ~25     !0, 'quoteDay'
         31        FETCH_DIM_R                                      ~27     ~25, ~26
         32        BOOL_NOT                                         ~28     ~27
         33      > JMPZ                                                     ~28, ->35
         34    > > JMP                                                      ->49
   26    35    >   INIT_FCALL                                               'str_replace'
         36        SEND_VAL                                                 '%2C'
         37        SEND_VAL                                                 '.'
         38        ADD                                              ~30     !1, !6
         39        FETCH_OBJ_R                                      ~29     !0, 'quoteDay'
         40        FETCH_DIM_R                                      ~31     ~29, ~30
         41        FETCH_OBJ_R                                      ~32     ~31, 'close'
         42        SEND_VAL                                                 ~32
         43        DO_ICALL                                         $33     
         44        CAST                                          5  ~34     $33
         45        ASSIGN_OP                                     1          !5, ~34
   24    46        PRE_INC                                                  !6
         47    >   IS_SMALLER                                               !6, !2
         48      > JMPNZ                                                    ~37, ->29
   28    49    >   DIV                                              ~38     !5, !6
         50        ASSIGN                                                   !7, ~38
   29    51        CONCAT                                           ~40     !7, '%0A'
         52        ECHO                                                     ~40
   30    53        ECHO                                                     '%0A'
   31    54        PRE_INC                                                  !1
   20    55      > JMP                                                      ->12
         56    >   FE_FREE                                                  $14
   32    57      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
154.48 ms | 1011 KiB | 15 Q