3v4l.org

run code in 300+ PHP versions simultaneously
<?php $a = null; $c = ''; print $a ?? 'b'; print "\n"; print $a ?: 'b'; print "\n"; print $c ?? 'a'; print "\n"; print $c ?: 'a'; print "\n"; $b = array('a' => null); print $b['a'] ?? 'd'; print "\n"; print $b['a'] ?: 'd'; print "\n"; print $b['c'] ?? 'e'; print "\n"; print $b['c'] ?: 'e'; print "\n";
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/YAXZs
function name:  (null)
number of ops:  40
compiled vars:  !0 = $a, !1 = $c, !2 = $b
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, null
    4     1        ASSIGN                                                   !1, ''
    6     2        COALESCE                                         ~5      !0
          3        QM_ASSIGN                                        ~5      'b'
          4        ECHO                                                     ~5
    7     5        ECHO                                                     '%0A'
    9     6        JMP_SET                                          ~6      !0, ->8
          7        QM_ASSIGN                                        ~6      'b'
          8        ECHO                                                     ~6
   10     9        ECHO                                                     '%0A'
   12    10        COALESCE                                         ~7      !1
         11        QM_ASSIGN                                        ~7      'a'
         12        ECHO                                                     ~7
   13    13        ECHO                                                     '%0A'
   15    14        JMP_SET                                          ~8      !1, ->16
         15        QM_ASSIGN                                        ~8      'a'
         16        ECHO                                                     ~8
   16    17        ECHO                                                     '%0A'
   18    18        ASSIGN                                                   !2, <array>
   20    19        FETCH_DIM_IS                                     ~10     !2, 'a'
         20        COALESCE                                         ~11     ~10
         21        QM_ASSIGN                                        ~11     'd'
         22        ECHO                                                     ~11
   21    23        ECHO                                                     '%0A'
   23    24        FETCH_DIM_R                                      ~12     !2, 'a'
         25        JMP_SET                                          ~13     ~12, ->27
         26        QM_ASSIGN                                        ~13     'd'
         27        ECHO                                                     ~13
   24    28        ECHO                                                     '%0A'
   26    29        FETCH_DIM_IS                                     ~14     !2, 'c'
         30        COALESCE                                         ~15     ~14
         31        QM_ASSIGN                                        ~15     'e'
         32        ECHO                                                     ~15
   27    33        ECHO                                                     '%0A'
   29    34        FETCH_DIM_R                                      ~16     !2, 'c'
         35        JMP_SET                                          ~17     ~16, ->37
         36        QM_ASSIGN                                        ~17     'e'
         37        ECHO                                                     ~17
   30    38        ECHO                                                     '%0A'
         39      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
169.84 ms | 1395 KiB | 13 Q