3v4l.org

run code in 500+ PHP versions simultaneously
<?php match([$clause, $this->isNested()]) { [Clause::IsSet, true] => $query->has($this->relationship), [Clause::IsNotSet, true] => $query->doesntHave($this->relationship), [Clause::IsSet, false] => $query->whereNotNull($this->column), [Clause::IsNotSet, false] => $query->whereNull($this->column), };
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 44) Position 1 = 10, Position 2 = 27
Branch analysis from position: 10
2 jumps found. (Code = 44) Position 1 = 15, Position 2 = 35
Branch analysis from position: 15
2 jumps found. (Code = 44) Position 1 = 20, Position 2 = 43
Branch analysis from position: 20
2 jumps found. (Code = 44) Position 1 = 25, Position 2 = 51
Branch analysis from position: 25
1 jumps found. (Code = 42) Position 1 = 26
Branch analysis from position: 26
1 jumps found. (Code = 197) Position 1 = -2
Branch analysis from position: 51
1 jumps found. (Code = 42) Position 1 = 59
Branch analysis from position: 59
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 43
1 jumps found. (Code = 42) Position 1 = 59
Branch analysis from position: 59
Branch analysis from position: 35
1 jumps found. (Code = 42) Position 1 = 59
Branch analysis from position: 59
Branch analysis from position: 27
1 jumps found. (Code = 42) Position 1 = 59
Branch analysis from position: 59
filename:       /in/2UQWu
function name:  (null)
number of ops:  62
compiled vars:  !0 = $clause, !1 = $query
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   INIT_ARRAY                                           ~2      !0
          1        FETCH_THIS                                           $3      
          2        INIT_METHOD_CALL                                             $3, 'isNested'
          3        DO_FCALL                                          0  $4      
          4        ADD_ARRAY_ELEMENT                                    ~2      $4
    4     5        FETCH_CLASS_CONSTANT                                 ~6      'Clause', 'IsSet'
          6        INIT_ARRAY                                           ~7      ~6
    3     7        ADD_ARRAY_ELEMENT                                    ~7      <true>
          8        CASE_STRICT                                                  ~2, ~7
          9      > JMPNZ                                                        ~5, ->27
    5    10    >   FETCH_CLASS_CONSTANT                                 ~8      'Clause', 'IsNotSet'
         11        INIT_ARRAY                                           ~9      ~8
         12        ADD_ARRAY_ELEMENT                                    ~9      <true>
         13        CASE_STRICT                                                  ~2, ~9
         14      > JMPNZ                                                        ~5, ->35
    6    15    >   FETCH_CLASS_CONSTANT                                 ~10     'Clause', 'IsSet'
         16        INIT_ARRAY                                           ~11     ~10
         17        ADD_ARRAY_ELEMENT                                    ~11     <false>
         18        CASE_STRICT                                                  ~2, ~11
         19      > JMPNZ                                                        ~5, ->43
    7    20    >   FETCH_CLASS_CONSTANT                                 ~12     'Clause', 'IsNotSet'
         21        INIT_ARRAY                                           ~13     ~12
         22        ADD_ARRAY_ELEMENT                                    ~13     <false>
         23        CASE_STRICT                                                  ~2, ~13
         24      > JMPNZ                                                        ~5, ->51
         25    > > JMP                                                          ->26
         26    > > MATCH_ERROR                                                  ~2
    4    27    >   INIT_METHOD_CALL                                             !1, 'has'
         28        CHECK_FUNC_ARG                                               
         29        FETCH_THIS                                           $14     
         30        FETCH_OBJ_FUNC_ARG                                   $15     $14, 'relationship'
         31        SEND_FUNC_ARG                                                $15
         32        DO_FCALL                                          0  $16     
         33        QM_ASSIGN                                            ~17     $16
         34      > JMP                                                          ->59
    5    35    >   INIT_METHOD_CALL                                             !1, 'doesntHave'
         36        CHECK_FUNC_ARG                                               
         37        FETCH_THIS                                           $18     
         38        FETCH_OBJ_FUNC_ARG                                   $19     $18, 'relationship'
         39        SEND_FUNC_ARG                                                $19
         40        DO_FCALL                                          0  $20     
         41        QM_ASSIGN                                            ~17     $20
         42      > JMP                                                          ->59
    6    43    >   INIT_METHOD_CALL                                             !1, 'whereNotNull'
         44        CHECK_FUNC_ARG                                               
         45        FETCH_THIS                                           $21     
         46        FETCH_OBJ_FUNC_ARG                                   $22     $21, 'column'
         47        SEND_FUNC_ARG                                                $22
         48        DO_FCALL                                          0  $23     
         49        QM_ASSIGN                                            ~17     $23
         50      > JMP                                                          ->59
    7    51    >   INIT_METHOD_CALL                                             !1, 'whereNull'
         52        CHECK_FUNC_ARG                                               
         53        FETCH_THIS                                           $24     
         54        FETCH_OBJ_FUNC_ARG                                   $25     $24, 'column'
         55        SEND_FUNC_ARG                                                $25
         56        DO_FCALL                                          0  $26     
         57        QM_ASSIGN                                            ~17     $26
         58      > JMP                                                          ->59
         59    >   FREE                                                         ~2
         60        FREE                                                         ~17
    8    61      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
135.38 ms | 1488 KiB | 13 Q