3v4l.org

run code in 300+ PHP versions simultaneously
<?php $a = null; print $a ?: 'b'; 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/v4lSP
function name:  (null)
number of ops:  31
compiled vars:  !0 = $a, !1 = $c, !2 = $b
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, null
    6     1        JMP_SET                                          ~4      !0, ->3
          2        QM_ASSIGN                                        ~4      'b'
          3        ECHO                                                     ~4
    7     4        ECHO                                                     '%0A'
   10     5        JMP_SET                                          ~5      !1, ->7
          6        QM_ASSIGN                                        ~5      'a'
          7        ECHO                                                     ~5
   11     8        ECHO                                                     '%0A'
   13     9        ASSIGN                                                   !2, <array>
   15    10        FETCH_DIM_IS                                     ~7      !2, 'a'
         11        COALESCE                                         ~8      ~7
         12        QM_ASSIGN                                        ~8      'd'
         13        ECHO                                                     ~8
   16    14        ECHO                                                     '%0A'
   18    15        FETCH_DIM_R                                      ~9      !2, 'a'
         16        JMP_SET                                          ~10     ~9, ->18
         17        QM_ASSIGN                                        ~10     'd'
         18        ECHO                                                     ~10
   19    19        ECHO                                                     '%0A'
   21    20        FETCH_DIM_IS                                     ~11     !2, 'c'
         21        COALESCE                                         ~12     ~11
         22        QM_ASSIGN                                        ~12     'e'
         23        ECHO                                                     ~12
   22    24        ECHO                                                     '%0A'
   24    25        FETCH_DIM_R                                      ~13     !2, 'c'
         26        JMP_SET                                          ~14     ~13, ->28
         27        QM_ASSIGN                                        ~14     'e'
         28        ECHO                                                     ~14
   25    29        ECHO                                                     '%0A'
         30      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
150.28 ms | 1394 KiB | 13 Q