3v4l.org

run code in 300+ PHP versions simultaneously
<?php trait B { } trait T { use B; } class E extends ArrayObject { use T; } $o = new E(); echo ($o instanceof ArrayObject) ? 'y' : 'n'; echo ($o instanceof T) ? 'y' : 'n'; echo ($o instanceof Traversable) ? 'y' : 'n'; echo ($o instanceof B) ? 'y' : 'n';
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 9
Branch analysis from position: 7
1 jumps found. (Code = 42) Position 1 = 10
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 15
Branch analysis from position: 13
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 21
Branch analysis from position: 19
1 jumps found. (Code = 42) Position 1 = 22
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 27
Branch analysis from position: 25
1 jumps found. (Code = 42) Position 1 = 28
Branch analysis from position: 28
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 27
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 21
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 27
Branch analysis from position: 25
Branch analysis from position: 27
Branch analysis from position: 15
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 21
Branch analysis from position: 19
Branch analysis from position: 21
Branch analysis from position: 9
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 15
Branch analysis from position: 13
Branch analysis from position: 15
filename:       /in/7Z0Qa
function name:  (null)
number of ops:  30
compiled vars:  !0 = $o
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    5     0  E >   DECLARE_CLASS                                            't'
    9     1        DECLARE_CLASS                                            'e', 'arrayobject'
   13     2        NEW                                              $1      'E'
          3        DO_FCALL                                      0          
          4        ASSIGN                                                   !0, $1
   14     5        INSTANCEOF                                               !0, 'ArrayObject'
          6      > JMPZ                                                     ~4, ->9
          7    >   QM_ASSIGN                                        ~5      'y'
          8      > JMP                                                      ->10
          9    >   QM_ASSIGN                                        ~5      'n'
         10    >   ECHO                                                     ~5
   15    11        INSTANCEOF                                               !0, 'T'
         12      > JMPZ                                                     ~6, ->15
         13    >   QM_ASSIGN                                        ~7      'y'
         14      > JMP                                                      ->16
         15    >   QM_ASSIGN                                        ~7      'n'
         16    >   ECHO                                                     ~7
   16    17        INSTANCEOF                                               !0, 'Traversable'
         18      > JMPZ                                                     ~8, ->21
         19    >   QM_ASSIGN                                        ~9      'y'
         20      > JMP                                                      ->22
         21    >   QM_ASSIGN                                        ~9      'n'
         22    >   ECHO                                                     ~9
   17    23        INSTANCEOF                                               !0, 'B'
         24      > JMPZ                                                     ~10, ->27
         25    >   QM_ASSIGN                                        ~11     'y'
         26      > JMP                                                      ->28
         27    >   QM_ASSIGN                                        ~11     'n'
         28    >   ECHO                                                     ~11
         29      > RETURN                                                   1

Class B: [no user functions]
Class T: [no user functions]
Class E: [no user functions]

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
153.07 ms | 1390 KiB | 13 Q