3v4l.org

run code in 300+ PHP versions simultaneously
<?php // Everything you enter here will be executed by our servers. Try it! class Myclass { public function doSomething() { static $foo = 0; echo 'objectid = ' . spl_object_hash($this) . ', $foo = ' . $foo . PHP_EOL; $foo++; if ($foo > 10) { $foo = 0; } } } $obj1 = new Myclass; $obj2 = new Myclass; $obj1->doSomething(); $obj1->doSomething(); $obj1->doSomething(); $obj1->doSomething(); $obj1->doSomething(); $obj1->doSomething(); $obj1->doSomething(); $obj1->doSomething(); $obj1->doSomething(); $obj1->doSomething(); $obj1->doSomething(); $obj1->doSomething(); $obj1->doSomething(); $obj1->doSomething(); $obj1->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj2->doSomething(); $obj1->doSomething(); $obj1->doSomething(); $obj1->doSomething();
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/Qo9Ga
function name:  (null)
number of ops:  83
compiled vars:  !0 = $obj1, !1 = $obj2
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   16     0  E >   NEW                                              $2      'Myclass'
          1        DO_FCALL                                      0          
          2        ASSIGN                                                   !0, $2
   17     3        NEW                                              $5      'Myclass'
          4        DO_FCALL                                      0          
          5        ASSIGN                                                   !1, $5
   18     6        INIT_METHOD_CALL                                         !0, 'doSomething'
          7        DO_FCALL                                      0          
   19     8        INIT_METHOD_CALL                                         !0, 'doSomething'
          9        DO_FCALL                                      0          
   20    10        INIT_METHOD_CALL                                         !0, 'doSomething'
         11        DO_FCALL                                      0          
   21    12        INIT_METHOD_CALL                                         !0, 'doSomething'
         13        DO_FCALL                                      0          
   22    14        INIT_METHOD_CALL                                         !0, 'doSomething'
         15        DO_FCALL                                      0          
   23    16        INIT_METHOD_CALL                                         !0, 'doSomething'
         17        DO_FCALL                                      0          
   24    18        INIT_METHOD_CALL                                         !0, 'doSomething'
         19        DO_FCALL                                      0          
   25    20        INIT_METHOD_CALL                                         !0, 'doSomething'
         21        DO_FCALL                                      0          
   26    22        INIT_METHOD_CALL                                         !0, 'doSomething'
         23        DO_FCALL                                      0          
   27    24        INIT_METHOD_CALL                                         !0, 'doSomething'
         25        DO_FCALL                                      0          
   28    26        INIT_METHOD_CALL                                         !0, 'doSomething'
         27        DO_FCALL                                      0          
   29    28        INIT_METHOD_CALL                                         !0, 'doSomething'
         29        DO_FCALL                                      0          
   30    30        INIT_METHOD_CALL                                         !0, 'doSomething'
         31        DO_FCALL                                      0          
   31    32        INIT_METHOD_CALL                                         !0, 'doSomething'
         33        DO_FCALL                                      0          
   32    34        INIT_METHOD_CALL                                         !0, 'doSomething'
         35        DO_FCALL                                      0          
   33    36        INIT_METHOD_CALL                                         !1, 'doSomething'
         37        DO_FCALL                                      0          
   34    38        INIT_METHOD_CALL                                         !1, 'doSomething'
         39        DO_FCALL                                      0          
   35    40        INIT_METHOD_CALL                                         !1, 'doSomething'
         41        DO_FCALL                                      0          
   36    42        INIT_METHOD_CALL                                         !1, 'doSomething'
         43        DO_FCALL                                      0          
   37    44        INIT_METHOD_CALL                                         !1, 'doSomething'
         45        DO_FCALL                                      0          
   38    46        INIT_METHOD_CALL                                         !1, 'doSomething'
         47        DO_FCALL                                      0          
   39    48        INIT_METHOD_CALL                                         !1, 'doSomething'
         49        DO_FCALL                                      0          
   40    50        INIT_METHOD_CALL                                         !1, 'doSomething'
         51        DO_FCALL                                      0          
   41    52        INIT_METHOD_CALL                                         !1, 'doSomething'
         53        DO_FCALL                                      0          
   42    54        INIT_METHOD_CALL                                         !1, 'doSomething'
         55        DO_FCALL                                      0          
   43    56        INIT_METHOD_CALL                                         !1, 'doSomething'
         57        DO_FCALL                                      0          
   44    58        INIT_METHOD_CALL                                         !1, 'doSomething'
         59        DO_FCALL                                      0          
   45    60        INIT_METHOD_CALL                                         !1, 'doSomething'
         61        DO_FCALL                                      0          
   46    62        INIT_METHOD_CALL                                         !1, 'doSomething'
         63        DO_FCALL                                      0          
   47    64        INIT_METHOD_CALL                                         !1, 'doSomething'
         65        DO_FCALL                                      0          
   48    66        INIT_METHOD_CALL                                         !1, 'doSomething'
         67        DO_FCALL                                      0          
   49    68        INIT_METHOD_CALL                                         !1, 'doSomething'
         69        DO_FCALL                                      0          
   50    70        INIT_METHOD_CALL                                         !1, 'doSomething'
         71        DO_FCALL                                      0          
   51    72        INIT_METHOD_CALL                                         !1, 'doSomething'
         73        DO_FCALL                                      0          
   52    74        INIT_METHOD_CALL                                         !1, 'doSomething'
         75        DO_FCALL                                      0          
   53    76        INIT_METHOD_CALL                                         !0, 'doSomething'
         77        DO_FCALL                                      0          
   54    78        INIT_METHOD_CALL                                         !0, 'doSomething'
         79        DO_FCALL                                      0          
   55    80        INIT_METHOD_CALL                                         !0, 'doSomething'
         81        DO_FCALL                                      0          
         82      > RETURN                                                   1

Class Myclass:
Function dosomething:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 14
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
filename:       /in/Qo9Ga
function name:  doSomething
number of ops:  15
compiled vars:  !0 = $foo
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    7     0  E >   BIND_STATIC                                              !0
    8     1        INIT_FCALL                                               'spl_object_hash'
          2        FETCH_THIS                                       ~1      
          3        SEND_VAL                                                 ~1
          4        DO_ICALL                                         $2      
          5        CONCAT                                           ~3      'objectid+%3D+', $2
          6        CONCAT                                           ~4      ~3, '%2C+%24foo+%3D+'
          7        CONCAT                                           ~5      ~4, !0
          8        CONCAT                                           ~6      ~5, '%0A'
          9        ECHO                                                     ~6
    9    10        PRE_INC                                                  !0
   10    11        IS_SMALLER                                               10, !0
         12      > JMPZ                                                     ~8, ->14
   11    13    >   ASSIGN                                                   !0, 0
   13    14    > > RETURN                                                   null

End of function dosomething

End of class Myclass.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
152.61 ms | 1404 KiB | 15 Q