3v4l.org

run code in 300+ PHP versions simultaneously
<?php // Does NOT work as expected. $sxml = simplexml_load_string('<test><num>20.5</num><den>1</den></test>'); $ans = $sxml->num / $sxml->den; echo "XML Test:\n"; echo "{$sxml->num} / {$sxml->den} = {$ans}\n"; // Output: 20.5 / 1 = 20 $ans = (string)$sxml->num / (string)$sxml->den; echo "{$sxml->num} / {$sxml->den} = {$ans}\n"; // Works as expected. $num = "20.5"; $den = "1"; $ans = $num / $den; echo "String Test:\n"; echo "{$num} / {$den} = {$ans}\n"; // Output: 20.5 / 1 = 20.5
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/rrvpT
function name:  (null)
number of ops:  46
compiled vars:  !0 = $sxml, !1 = $ans, !2 = $num, !3 = $den
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   INIT_FCALL                                               'simplexml_load_string'
          1        SEND_VAL                                                 '%3Ctest%3E%3Cnum%3E20.5%3C%2Fnum%3E%3Cden%3E1%3C%2Fden%3E%3C%2Ftest%3E'
          2        DO_ICALL                                         $4      
          3        ASSIGN                                                   !0, $4
    5     4        FETCH_OBJ_R                                      ~6      !0, 'num'
          5        FETCH_OBJ_R                                      ~7      !0, 'den'
          6        DIV                                              ~8      ~6, ~7
          7        ASSIGN                                                   !1, ~8
    7     8        ECHO                                                     'XML+Test%3A%0A'
    8     9        FETCH_OBJ_R                                      ~10     !0, 'num'
         10        ROPE_INIT                                     6  ~13     ~10
         11        ROPE_ADD                                      1  ~13     ~13, '+%2F+'
         12        FETCH_OBJ_R                                      ~11     !0, 'den'
         13        ROPE_ADD                                      2  ~13     ~13, ~11
         14        ROPE_ADD                                      3  ~13     ~13, '+%3D+'
         15        ROPE_ADD                                      4  ~13     ~13, !1
         16        ROPE_END                                      5  ~12     ~13, '%0A'
         17        ECHO                                                     ~12
   11    18        FETCH_OBJ_R                                      ~16     !0, 'num'
         19        CAST                                          6  ~17     ~16
         20        FETCH_OBJ_R                                      ~18     !0, 'den'
         21        CAST                                          6  ~19     ~18
         22        DIV                                              ~20     ~17, ~19
         23        ASSIGN                                                   !1, ~20
   12    24        FETCH_OBJ_R                                      ~22     !0, 'num'
         25        ROPE_INIT                                     6  ~25     ~22
         26        ROPE_ADD                                      1  ~25     ~25, '+%2F+'
         27        FETCH_OBJ_R                                      ~23     !0, 'den'
         28        ROPE_ADD                                      2  ~25     ~25, ~23
         29        ROPE_ADD                                      3  ~25     ~25, '+%3D+'
         30        ROPE_ADD                                      4  ~25     ~25, !1
         31        ROPE_END                                      5  ~24     ~25, '%0A'
         32        ECHO                                                     ~24
   15    33        ASSIGN                                                   !2, '20.5'
   16    34        ASSIGN                                                   !3, '1'
   17    35        DIV                                              ~30     !2, !3
         36        ASSIGN                                                   !1, ~30
   19    37        ECHO                                                     'String+Test%3A%0A'
   20    38        ROPE_INIT                                     6  ~33     !2
         39        ROPE_ADD                                      1  ~33     ~33, '+%2F+'
         40        ROPE_ADD                                      2  ~33     ~33, !3
         41        ROPE_ADD                                      3  ~33     ~33, '+%3D+'
         42        ROPE_ADD                                      4  ~33     ~33, !1
         43        ROPE_END                                      5  ~32     ~33, '%0A'
         44        ECHO                                                     ~32
   21    45      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
146.44 ms | 1405 KiB | 15 Q