3v4l.org

run code in 300+ PHP versions simultaneously
<?php echo "Normal match:\n"; preg_match('/two/', 'two', $match, PREG_UNMATCHED_AS_NULL); var_dump($match); echo "Unmatched $1 is always reported as null:\n"; preg_match('/(one)?two/', 'two', $match, PREG_UNMATCHED_AS_NULL); var_dump($match); preg_match('/two(three)?/', 'two', $match, PREG_UNMATCHED_AS_NULL); var_dump($match); preg_match('/(one)?(two)/', 'two', $match, PREG_UNMATCHED_AS_NULL); var_dump($match); echo "Unmatched $2 is also reported as null:\n"; preg_match('/(two)(three)?/', 'two', $match, PREG_UNMATCHED_AS_NULL); var_dump($match);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/4H7GJ
function name:  (null)
number of ops:  49
compiled vars:  !0 = $match
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ECHO                                                     'Normal+match%3A%0A'
    4     1        INIT_FCALL                                               'preg_match'
          2        SEND_VAL                                                 '%2Ftwo%2F'
          3        SEND_VAL                                                 'two'
          4        SEND_REF                                                 !0
          5        SEND_VAL                                                 512
          6        DO_ICALL                                                 
    5     7        INIT_FCALL                                               'var_dump'
          8        SEND_VAR                                                 !0
          9        DO_ICALL                                                 
    7    10        ECHO                                                     'Unmatched+%241+is+always+reported+as+null%3A%0A'
    8    11        INIT_FCALL                                               'preg_match'
         12        SEND_VAL                                                 '%2F%28one%29%3Ftwo%2F'
         13        SEND_VAL                                                 'two'
         14        SEND_REF                                                 !0
         15        SEND_VAL                                                 512
         16        DO_ICALL                                                 
    9    17        INIT_FCALL                                               'var_dump'
         18        SEND_VAR                                                 !0
         19        DO_ICALL                                                 
   11    20        INIT_FCALL                                               'preg_match'
         21        SEND_VAL                                                 '%2Ftwo%28three%29%3F%2F'
         22        SEND_VAL                                                 'two'
         23        SEND_REF                                                 !0
         24        SEND_VAL                                                 512
         25        DO_ICALL                                                 
   12    26        INIT_FCALL                                               'var_dump'
         27        SEND_VAR                                                 !0
         28        DO_ICALL                                                 
   14    29        INIT_FCALL                                               'preg_match'
         30        SEND_VAL                                                 '%2F%28one%29%3F%28two%29%2F'
         31        SEND_VAL                                                 'two'
         32        SEND_REF                                                 !0
         33        SEND_VAL                                                 512
         34        DO_ICALL                                                 
   15    35        INIT_FCALL                                               'var_dump'
         36        SEND_VAR                                                 !0
         37        DO_ICALL                                                 
   17    38        ECHO                                                     'Unmatched+%242+is+also+reported+as+null%3A%0A'
   18    39        INIT_FCALL                                               'preg_match'
         40        SEND_VAL                                                 '%2F%28two%29%28three%29%3F%2F'
         41        SEND_VAL                                                 'two'
         42        SEND_REF                                                 !0
         43        SEND_VAL                                                 512
         44        DO_ICALL                                                 
   19    45        INIT_FCALL                                               'var_dump'
         46        SEND_VAR                                                 !0
         47        DO_ICALL                                                 
         48      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
181.66 ms | 1400 KiB | 17 Q