3v4l.org

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

Class Base: [no user functions]
Class Trait1: [no user functions]
Class Example: [no user functions]

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
153.02 ms | 1399 KiB | 13 Q