3v4l.org

run code in 300+ PHP versions simultaneously
<?php // https://bugs.php.net/bug.php?id=62043 $var1 = null; $var2 = null; $var3 = $var1 ?: $var2; //$var3==null $var4 = $var1 ?: 'default1'; //$var4=='default1' $var5 = $var1 ?: $var2 ?: 'default2'; //$var5=='default2' $var6 = $var2 ?: $var3 ?: $var4 ?: 'default3'; //$var6=='default1' since the first non-null value is $var4=='default1' var_dump($var1, $var2, $var3, $var4, $var5, $var6);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/NP9ZY
function name:  (null)
number of ops:  29
compiled vars:  !0 = $var1, !1 = $var2, !2 = $var3, !3 = $var4, !4 = $var5, !5 = $var6
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   ASSIGN                                                   !0, null
    5     1        ASSIGN                                                   !1, null
    6     2        JMP_SET                                          ~8      !0, ->4
          3        QM_ASSIGN                                        ~8      !1
          4        ASSIGN                                                   !2, ~8
    7     5        JMP_SET                                          ~10     !0, ->7
          6        QM_ASSIGN                                        ~10     'default1'
          7        ASSIGN                                                   !3, ~10
    8     8        JMP_SET                                          ~12     !0, ->10
          9        QM_ASSIGN                                        ~12     !1
         10        JMP_SET                                          ~13     ~12, ->12
         11        QM_ASSIGN                                        ~13     'default2'
         12        ASSIGN                                                   !4, ~13
    9    13        JMP_SET                                          ~15     !1, ->15
         14        QM_ASSIGN                                        ~15     !2
         15        JMP_SET                                          ~16     ~15, ->17
         16        QM_ASSIGN                                        ~16     !3
         17        JMP_SET                                          ~17     ~16, ->19
         18        QM_ASSIGN                                        ~17     'default3'
         19        ASSIGN                                                   !5, ~17
   11    20        INIT_FCALL                                               'var_dump'
         21        SEND_VAR                                                 !0
         22        SEND_VAR                                                 !1
         23        SEND_VAR                                                 !2
         24        SEND_VAR                                                 !3
         25        SEND_VAR                                                 !4
         26        SEND_VAR                                                 !5
         27        DO_ICALL                                                 
         28      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
144.43 ms | 1395 KiB | 15 Q