3v4l.org

run code in 300+ PHP versions simultaneously
<?php class TestClass { public $a; public $b; public $c; public $d; } $inner1 = new TestClass; $inner1->a = 1000; $inner2 = new TestClass; $inner2->a = 1000; $inner3 = new TestClass; $inner3->a = 1001; $o1 = new TestClass; $o1->a = 'abc'; $o1->b = ['a', 'b', 'c']; $o1->c = 123456; $o1->d = $inner1; $o2 = new TestClass; $o2->a = 'abc'; $o2->b = ['a', 'b', 'c']; $o2->c = 123456; $o2->d = $inner2; $o3 = new TestClass; $o3->a = 'abc'; $o3->b = ['a', 'b', 'c']; $o3->c = 123456; $o3->d = $inner3; var_dump([ md5(json_encode($o1)), md5(json_encode($o2)), md5(json_encode($o3)), ]); var_dump($o1 == $o2); var_dump($o1 === $o2);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/hEHHE
function name:  (null)
number of ops:  81
compiled vars:  !0 = $inner1, !1 = $inner2, !2 = $inner3, !3 = $o1, !4 = $o2, !5 = $o3
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   12     0  E >   NEW                                              $6      'TestClass'
          1        DO_FCALL                                      0          
          2        ASSIGN                                                   !0, $6
   13     3        ASSIGN_OBJ                                               !0, 'a'
          4        OP_DATA                                                  1000
   15     5        NEW                                              $10     'TestClass'
          6        DO_FCALL                                      0          
          7        ASSIGN                                                   !1, $10
   16     8        ASSIGN_OBJ                                               !1, 'a'
          9        OP_DATA                                                  1000
   18    10        NEW                                              $14     'TestClass'
         11        DO_FCALL                                      0          
         12        ASSIGN                                                   !2, $14
   19    13        ASSIGN_OBJ                                               !2, 'a'
         14        OP_DATA                                                  1001
   23    15        NEW                                              $18     'TestClass'
         16        DO_FCALL                                      0          
         17        ASSIGN                                                   !3, $18
   24    18        ASSIGN_OBJ                                               !3, 'a'
         19        OP_DATA                                                  'abc'
   25    20        ASSIGN_OBJ                                               !3, 'b'
         21        OP_DATA                                                  <array>
   26    22        ASSIGN_OBJ                                               !3, 'c'
         23        OP_DATA                                                  123456
   27    24        ASSIGN_OBJ                                               !3, 'd'
         25        OP_DATA                                                  !0
   30    26        NEW                                              $25     'TestClass'
         27        DO_FCALL                                      0          
         28        ASSIGN                                                   !4, $25
   31    29        ASSIGN_OBJ                                               !4, 'a'
         30        OP_DATA                                                  'abc'
   32    31        ASSIGN_OBJ                                               !4, 'b'
         32        OP_DATA                                                  <array>
   33    33        ASSIGN_OBJ                                               !4, 'c'
         34        OP_DATA                                                  123456
   34    35        ASSIGN_OBJ                                               !4, 'd'
         36        OP_DATA                                                  !1
   36    37        NEW                                              $32     'TestClass'
         38        DO_FCALL                                      0          
         39        ASSIGN                                                   !5, $32
   37    40        ASSIGN_OBJ                                               !5, 'a'
         41        OP_DATA                                                  'abc'
   38    42        ASSIGN_OBJ                                               !5, 'b'
         43        OP_DATA                                                  <array>
   39    44        ASSIGN_OBJ                                               !5, 'c'
         45        OP_DATA                                                  123456
   40    46        ASSIGN_OBJ                                               !5, 'd'
         47        OP_DATA                                                  !2
   43    48        INIT_FCALL                                               'var_dump'
   44    49        INIT_FCALL                                               'md5'
         50        INIT_FCALL                                               'json_encode'
         51        SEND_VAR                                                 !3
         52        DO_ICALL                                         $39     
         53        SEND_VAR                                                 $39
         54        DO_ICALL                                         $40     
         55        INIT_ARRAY                                       ~41     $40
   45    56        INIT_FCALL                                               'md5'
         57        INIT_FCALL                                               'json_encode'
         58        SEND_VAR                                                 !4
         59        DO_ICALL                                         $42     
         60        SEND_VAR                                                 $42
         61        DO_ICALL                                         $43     
         62        ADD_ARRAY_ELEMENT                                ~41     $43
   46    63        INIT_FCALL                                               'md5'
         64        INIT_FCALL                                               'json_encode'
         65        SEND_VAR                                                 !5
         66        DO_ICALL                                         $44     
         67        SEND_VAR                                                 $44
         68        DO_ICALL                                         $45     
         69        ADD_ARRAY_ELEMENT                                ~41     $45
         70        SEND_VAL                                                 ~41
         71        DO_ICALL                                                 
   49    72        INIT_FCALL                                               'var_dump'
         73        IS_EQUAL                                         ~47     !3, !4
         74        SEND_VAL                                                 ~47
         75        DO_ICALL                                                 
   50    76        INIT_FCALL                                               'var_dump'
         77        IS_IDENTICAL                                     ~49     !3, !4
         78        SEND_VAL                                                 ~49
         79        DO_ICALL                                                 
         80      > RETURN                                                   1

Class TestClass: [no user functions]

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
156.46 ms | 1400 KiB | 19 Q