3v4l.org

run code in 500+ 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 = 10
Branch analysis from position: 6
1 jumps found. (Code = 61) Position 1 = -2
Branch analysis from position: 10
2 jumps found. (Code = 77) Position 1 = 13, Position 2 = 56
Branch analysis from position: 13
2 jumps found. (Code = 78) Position 1 = 14, Position 2 = 56
Branch analysis from position: 14
2 jumps found. (Code = 43) Position 1 = 37, Position 2 = 46
Branch analysis from position: 37
1 jumps found. (Code = 42) Position 1 = 47
Branch analysis from position: 47
1 jumps found. (Code = 42) Position 1 = 13
Branch analysis from position: 13
Branch analysis from position: 46
1 jumps found. (Code = 42) Position 1 = 13
Branch analysis from position: 13
Branch analysis from position: 56
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 56
filename:       /in/jmges
function name:  (null)
number of ops:  58
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, ->10
          6    > > INIT_FCALL                                                   'exit'
          7*       SEND_VAL                                                     'Error%3A+Cannot+create+object'
          8*       DO_ICALL                                             $10     
          9*       BOOL                                                 ~9      $10
   18    10    >   ASSIGN                                                       !1, 0
   19    11        FETCH_OBJ_R                                          ~12     !0, 'quoteDay'
         12      > FE_RESET_R                                           $13     ~12, ->56
         13    > > FE_FETCH_R                                                   $13, !2, ->56
   20    14    >   INIT_FCALL                                                   'number_format'
         15        INIT_FCALL                                                   'round'
         16        FETCH_OBJ_R                                          ~14     !2, 'close'
         17        SEND_VAL                                                     ~14
         18        SEND_VAL                                                     0
         19        DO_ICALL                                             $15     
         20        SEND_VAR                                                     $15
         21        DO_ICALL                                             $16     
         22        ASSIGN                                                       !3, $16
   21    23        FETCH_OBJ_R                                          ~18     !2, 'date'
         24        CONCAT                                               ~19     'Moving+average+for+', ~18
         25        CONCAT                                               ~20     ~19, '%3A'
         26        CONCAT                                               ~21     ~20, '%0A'
         27        ECHO                                                         ~21
   22    28        FETCH_OBJ_R                                          ~22     !2, 'close'
         29        FRAMELESS_ICALL_3                str_replace         ~23     '%2C', '.'
         30        OP_DATA                                                      ~22
         31        CAST                                              5  ~24     ~23
         32        ASSIGN                                                       !4, ~24
   23    33        ADD                                                  ~27     !1, 1
         34        FETCH_OBJ_R                                          ~26     !0, 'quoteDay'
         35        FETCH_DIM_R                                          ~28     ~26, ~27
         36      > JMPZ                                                         ~28, ->46
   24    37    >   ADD                                                  ~30     !1, 1
         38        FETCH_OBJ_R                                          ~29     !0, 'quoteDay'
         39        FETCH_DIM_R                                          ~31     ~29, ~30
         40        FETCH_OBJ_R                                          ~32     ~31, 'close'
         41        FRAMELESS_ICALL_3                str_replace         ~33     '%2C', '.'
         42        OP_DATA                                                      ~32
         43        CAST                                              5  ~34     ~33
         44        QM_ASSIGN                                            ~35     ~34
         45      > JMP                                                          ->47
   25    46    >   QM_ASSIGN                                            ~35     !4
   23    47    >   ASSIGN                                                       !5, ~35
   26    48        ADD                                                  ~37     !4, !5
         49        DIV                                                  ~38     ~37, 2
         50        ASSIGN                                                       !6, ~38
   27    51        CONCAT                                               ~40     !6, '%0A'
         52        ECHO                                                         ~40
   28    53        ECHO                                                         '%0A'
   29    54        PRE_INC                                                      !1
   19    55      > JMP                                                          ->13
         56    >   FE_FREE                                                      $13
   30    57      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
164.45 ms | 2600 KiB | 17 Q