3v4l.org

run code in 500+ PHP versions simultaneously
<?php $x = 'a'; $b = 8; $c = 25; echo '1: '; echo (null ?? $x.'_1')."\n"; echo '2: '; echo ('notnull' ?? $x.'_1')."\n"; echo '3: '; echo ('notnull' ?? ($x.'_1'))."\n"; echo '4: '; echo ('notnull' ?? $b + 1)."\n"; echo '5: '; echo ('notnull' ?? $c > 1)."\n"; echo '6: '; echo ('notnull' ?? $b || $c)."\n"; echo ('7: '. 1 + $c ?? 2 + $b ?? 3); echo "\n"; echo '8: '. 1 + null ?? 2 + $b ?? 3; echo "\n";
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 47) Position 1 = 36, Position 2 = 37
Branch analysis from position: 36
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 37
filename:       /in/GDaGm
function name:  (null)
number of ops:  57
compiled vars:  !0 = $x, !1 = $b, !2 = $c
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, 'a'
    4     1        ASSIGN                                                       !1, 8
    5     2        ASSIGN                                                       !2, 25
    7     3        ECHO                                                         '1%3A+'
          4        COALESCE                                             ~6      null
          5        CONCAT                                               ~7      !0, '_1'
          6        QM_ASSIGN                                            ~6      ~7
          7        CONCAT                                               ~8      ~6, '%0A'
          8        ECHO                                                         ~8
    8     9        ECHO                                                         '2%3A+'
         10        COALESCE                                             ~9      'notnull'
         11        CONCAT                                               ~10     !0, '_1'
         12        QM_ASSIGN                                            ~9      ~10
         13        CONCAT                                               ~11     ~9, '%0A'
         14        ECHO                                                         ~11
    9    15        ECHO                                                         '3%3A+'
         16        COALESCE                                             ~12     'notnull'
         17        CONCAT                                               ~13     !0, '_1'
         18        QM_ASSIGN                                            ~12     ~13
         19        CONCAT                                               ~14     ~12, '%0A'
         20        ECHO                                                         ~14
   10    21        ECHO                                                         '4%3A+'
         22        COALESCE                                             ~15     'notnull'
         23        ADD                                                  ~16     !1, 1
         24        QM_ASSIGN                                            ~15     ~16
         25        CONCAT                                               ~17     ~15, '%0A'
         26        ECHO                                                         ~17
   11    27        ECHO                                                         '5%3A+'
         28        COALESCE                                             ~18     'notnull'
         29        IS_SMALLER                                           ~19     1, !2
         30        QM_ASSIGN                                            ~18     ~19
         31        CONCAT                                               ~20     ~18, '%0A'
         32        ECHO                                                         ~20
   12    33        ECHO                                                         '6%3A+'
         34        COALESCE                                             ~21     'notnull'
         35      > JMPNZ_EX                                             ~22     !1, ->37
         36    >   BOOL                                                 ~22     !2
         37    >   QM_ASSIGN                                            ~21     ~22
         38        CONCAT                                               ~23     ~21, '%0A'
         39        ECHO                                                         ~23
   13    40        ADD                                                  ~24     1, !2
         41        CONCAT                                               ~25     '7%3A+', ~24
         42        COALESCE                                             ~26     ~25
         43        ADD                                                  ~27     2, !1
         44        COALESCE                                             ~28     ~27
         45        QM_ASSIGN                                            ~28     3
         46        QM_ASSIGN                                            ~26     ~28
         47        ECHO                                                         ~26
         48        ECHO                                                         '%0A'
   14    49        COALESCE                                             ~29     '8%3A+1'
         50        ADD                                                  ~30     2, !1
         51        COALESCE                                             ~31     ~30
         52        QM_ASSIGN                                            ~31     3
         53        QM_ASSIGN                                            ~29     ~31
         54        ECHO                                                         ~29
         55        ECHO                                                         '%0A'
         56      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
201.48 ms | 2188 KiB | 13 Q