3v4l.org

run code in 300+ PHP versions simultaneously
<?php trait BaseObject{} trait TraitObject{ use BaseObject; } class Example extends ArrayObject{ use TraitObject; } $obj = new Example(); echo ($obj instanceof ArrayObject) ? 'yes' : 'no', ',' ; echo ($obj instanceof TraitObject) ? 'yes' : 'no', ',' ; echo ($obj instanceof Traversable) ? 'yes' : 'no', ',' ; echo ($obj instanceof BaseObject) ? 'yes' : 'no' ;
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/8Zse9
function name:  (null)
number of ops:  33
compiled vars:  !0 = $obj
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   DECLARE_CLASS                                            'traitobject'
    8     1        DECLARE_CLASS                                            'example', 'arrayobject'
   12     2        NEW                                              $1      'Example'
          3        DO_FCALL                                      0          
          4        ASSIGN                                                   !0, $1
   13     5        INSTANCEOF                                               !0, 'ArrayObject'
          6      > JMPZ                                                     ~4, ->9
          7    >   QM_ASSIGN                                        ~5      'yes'
          8      > JMP                                                      ->10
          9    >   QM_ASSIGN                                        ~5      'no'
         10    >   ECHO                                                     ~5
         11        ECHO                                                     '%2C'
   14    12        INSTANCEOF                                               !0, 'TraitObject'
         13      > JMPZ                                                     ~6, ->16
         14    >   QM_ASSIGN                                        ~7      'yes'
         15      > JMP                                                      ->17
         16    >   QM_ASSIGN                                        ~7      'no'
         17    >   ECHO                                                     ~7
         18        ECHO                                                     '%2C'
   15    19        INSTANCEOF                                               !0, 'Traversable'
         20      > JMPZ                                                     ~8, ->23
         21    >   QM_ASSIGN                                        ~9      'yes'
         22      > JMP                                                      ->24
         23    >   QM_ASSIGN                                        ~9      'no'
         24    >   ECHO                                                     ~9
         25        ECHO                                                     '%2C'
   16    26        INSTANCEOF                                               !0, 'BaseObject'
         27      > JMPZ                                                     ~10, ->30
         28    >   QM_ASSIGN                                        ~11     'yes'
         29      > JMP                                                      ->31
         30    >   QM_ASSIGN                                        ~11     'no'
         31    >   ECHO                                                     ~11
         32      > RETURN                                                   1

Class BaseObject: [no user functions]
Class TraitObject: [no user functions]
Class Example: [no user functions]

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
156.62 ms | 1403 KiB | 13 Q