3v4l.org

run code in 300+ PHP versions simultaneously
<?php $regex = <<<REGEX / (?:\A|\n)\s* # (?:(@[\pL-_\\]+)\ *(\()([?s:^\)]*)(\)))| (?: (?: (?:(@author)\ +([^<]+)(?:(\<)(.+?)(\>))?)| (@api)| (@category\ +([^ ]+))| (@copyright)| (@deprecated)| (@example\ +([^ ]+))| (@filesource)| (@global\ +([^ ]+))| (@ignore)| (@internal)| (@license\ +([^ ]+))| (?:(@link)\ +([^ ]+))| (@method)| (@package\ +([^ ]+))| (@param\ +([^ ]+)\ +([^ ]+))| (@property\ +([^ ]+)\ +([^ ]+))| (@property-read\ +([^ ]+)\ +([^ ]+))| (@property-write\ +([^ ]+)\ +([^ ]+))| (@return\ +([^ ]+))| (?:(@see)\ +([^ ]+))| (@since\ +([^ ]+))| (@source)| (@subpackage\ +([^ ]+))| (@throws\ +([^ ]+))| (@todo)| (@uses\ +([^ ]+))| (@var\ +([^ ]+))| (@version\ +([^ ]+))| (@[\pL-_]+) ) \ + (?s:(.*?)) ) (?=\n\s*@|\Z) /ux REGEX; $comment = <<<COMMENT @ORM\Type(name="") @see MyTag this is a @description that spans multiple lines @internal @author Mike van Riel <me@mikevanriel.com> COMMENT; var_dump(preg_match_all($regex, $comment, $matches, PREG_SET_ORDER)); var_dump($matches);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/bpgkg
function name:  (null)
number of ops:  15
compiled vars:  !0 = $regex, !1 = $comment, !2 = $matches
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, '++++++++++++%2F%0A++++++++++++%28%3F%3A%5CA%7C%0A%29%5Cs%2A%0A%23++++++++++++%28%3F%3A%28%40%5B%5CpL-_%5C%5D%2B%29%5C+%2A%28%5C%28%29%28%5B%3Fs%3A%5E%5C%29%5D%2A%29%28%5C%29%29%29%7C%0A++++++++++++%28%3F%3A%0A++++++++++++++%28%3F%3A%0A++++++++++++++++%28%3F%3A%28%40author%29%5C+%2B%28%5B%5E%3C%5D%2B%29%28%3F%3A%28%5C%3C%29%28.%2B%3F%29%28%5C%3E%29%29%3F%29%7C%0A++++++++++++++++%28%40api%29%7C%0A++++++++++++++++%28%40category%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40copyright%29%7C%0A++++++++++++++++%28%40deprecated%29%7C%0A++++++++++++++++%28%40example%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40filesource%29%7C%0A++++++++++++++++%28%40global%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40ignore%29%7C%0A++++++++++++++++%28%40internal%29%7C%0A++++++++++++++++%28%40license%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%3F%3A%28%40link%29%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40method%29%7C%0A++++++++++++++++%28%40package%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40param%5C+%2B%28%5B%5E+%5D%2B%29%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40property%5C+%2B%28%5B%5E+%5D%2B%29%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40property-read%5C+%2B%28%5B%5E+%5D%2B%29%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40property-write%5C+%2B%28%5B%5E+%5D%2B%29%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40return%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%3F%3A%28%40see%29%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40since%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40source%29%7C%0A++++++++++++++++%28%40subpackage%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40throws%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40todo%29%7C%0A++++++++++++++++%28%40uses%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40var%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40version%5C+%2B%28%5B%5E+%5D%2B%29%29%7C%0A++++++++++++++++%28%40%5B%5CpL-_%5D%2B%29%0A++++++++++++++%29%0A++++++++++++++%5C+%2B%0A++++++++++++++%28%3Fs%3A%28.%2A%3F%29%29%0A++++++++++++%29%0A++++++++++++%28%3F%3D%0A%5Cs%2A%40%7C%5CZ%29%0A++++++++++++%2Fux'
   45     1        ASSIGN                                                   !1, '%0A%40ORM%5CType%28name%3D%22%22%29%0A%40see+MyTag+this+is+a+%40description%0Athat+spans+multiple+lines%0A%40internal%0A%40author+Mike+van+Riel+%3Cme%40mikevanriel.com%3E'
   54     2        INIT_FCALL                                               'var_dump'
          3        INIT_FCALL                                               'preg_match_all'
          4        SEND_VAR                                                 !0
          5        SEND_VAR                                                 !1
          6        SEND_REF                                                 !2
          7        SEND_VAL                                                 2
          8        DO_ICALL                                         $5      
          9        SEND_VAR                                                 $5
         10        DO_ICALL                                                 
   55    11        INIT_FCALL                                               'var_dump'
         12        SEND_VAR                                                 !2
         13        DO_ICALL                                                 
         14      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
179.09 ms | 1396 KiB | 17 Q