View Mdoc internals of Final1

Array
(
    [main] => Array
        (
            [language] => PHP
            [type] => final_class
            [name] => Final1
            [source] => Array
                (
                    [comment] => /**
 * A class for final parsing tests.
 *
 * @author    JM Faure 
 * @version   1.0
 * @date      09 Aug 2005
 */
                    [declaration] => final class Final1
                    [line] => 17
                )

            [description] => Array
                (
                    [short] => A class for final parsing tests.
                )

            [info] => Array
                (
                    [author] => JM Faure 
                    [version] => 1.0
                    [date] => 09 Aug 2005
                )

            [constants] => 0
        )

    [method] => Array
        (
            [f3param] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* A method with 3 parameters.
 *
 * @param (string) $p1 the first parameter
 * @param (int) $p2 the second parameter
 * @param (string) $p3 the 3rd parameter
 * @return (void)
 */
                            [code] => protected function f3param($p1, int $p2, string $p3) {

  // Print the 3 parameters
  echo $p1 . "\n";
  echo $p2 . "\n";
  echo $p3 . "\n";

  return true;
}
                            [line] => 27
                            [return_type] => void
                            [parameters] => string p1, int p2, string p3
                            [member] => protected
                        )

                    [info] => Array
                        (
                            [protected] => yes
                        )

                    [description] => Array
                        (
                            [short] => A method with 3 parameters.
                        )

                    [param] => Array
                        (
                            [p1] => Array
                                (
                                    [type] => string
                                    [default] => 
                                    [reference] => 
                                    [description] => the first parameter
                                )

                            [p2] => Array
                                (
                                    [type] => int
                                    [default] => 
                                    [reference] => 
                                    [description] => the second parameter
                                )

                            [p3] => Array
                                (
                                    [type] => string
                                    [default] => 
                                    [reference] => 
                                    [description] => the 3rd parameter
                                )

                        )

                    [return] => Array
                        (
                            [0] => Array
                                (
                                    [type] => void
                                    [description] => 
                                )

                        )

                )

            [fpbyref] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* A method with parameters passed by reference.
 *
 * The function statement presents the & reference char in
 * different places (& $p1 and &$p2).
 *
 * @warning  unstable
 * @param (string) $p1 the 1st parameter
 * @param (bool) $p2 the 2nd parameter
 *                   has a two-line comment
 * @return (string) the function result
 */
                            [code] => function fpbyref(& $p1, bool &$p2) {

  return $p1;
}
                            [line] => 49
                            [return_type] => string
                            [parameters] => string p1, bool p2
                            [member] => public
                        )

                    [description] => Array
                        (
                            [short] => A method with parameters passed by reference.
                            [long] => The function statement presents the & reference char in
different places (& $p1 and &$p2).
                        )

                    [param] => Array
                        (
                            [p1] => Array
                                (
                                    [type] => string
                                    [default] => 
                                    [reference] => yes
                                    [description] => the 1st parameter
                                )

                            [p2] => Array
                                (
                                    [type] => bool
                                    [default] => 
                                    [reference] => yes
                                    [description] => the 2nd parameter
                  has a two-line comment
                                )

                        )

                    [return] => Array
                        (
                            [0] => Array
                                (
                                    [type] => string
                                    [description] => the function result
                                )

                        )

                    [info] => Array
                        (
                            [warning] => unstable
                        )

                )

            [mlotinf] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* A method with a lot @info items.
 *
 * The function statement presents default values and casting.
 *
 * @param (int) $p1 the first parameter
 * @param (mixed) $p2 a text (string) as regular entry
 *                    or false (bool) to get a particualr behavior
 * @param (string) $p3 the third parameter
 *                  is commented onto
 *                  three lines
 * @param (array) $p4 a structured list:
 *                    'name' => the user name
 *                    'address' => the user address
 *                    'city' => the city name
 * @return (void) if echo flag $p1 is true,
 *                the comment continue on a three
 *                lines to test return values parsing
 *         (string) the printable result if echo flag is false (default)
 */
                            [code] => private function mlotinf($p1, $p2="a string", string $p3 = "another string", $p4) {

  if ($p1) {
    return;
  } else {
    return "whatever";
  }
}
                            [line] => 74
                            [return_type] => mixed
                            [parameters] => int p1 [, mixed p2 [, string p3, array p4]]
                            [member] => private
                        )

                    [info] => Array
                        (
                            [private] => yes
                        )

                    [description] => Array
                        (
                            [short] => A method with a lot @info items.
                            [long] => The function statement presents default values and casting.
                        )

                    [param] => Array
                        (
                            [p1] => Array
                                (
                                    [type] => int
                                    [default] => 
                                    [reference] => 
                                    [description] => the first parameter
                                )

                            [p2] => Array
                                (
                                    [type] => mixed
                                    [default] => "a string"
                                    [reference] => 
                                    [description] => a text (string) as regular entry
                   or false (bool) to get a particualr behavior
                                )

                            [p3] => Array
                                (
                                    [type] => string
                                    [default] => "another string"
                                    [reference] => 
                                    [description] => the third parameter
                 is commented onto
                 three lines
                                )

                            [p4] => Array
                                (
                                    [type] => array
                                    [default] => 
                                    [reference] => 
                                    [description] => a structured list:
                   'name' => the user name
                   'address' => the user address
                   'city' => the city name
                                )

                        )

                    [return] => Array
                        (
                            [0] => Array
                                (
                                    [type] => void
                                    [description] => if echo flag $p1 is true,
               the comment continue on a three
               lines to test return values parsing
                                )

                            [1] => Array
                                (
                                    [type] => string
                                    [description] => the printable result if echo flag is false (default)
                                )

                        )

                )

        )

    [public_method] => Array
        (
            [fpbyref] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* A method with parameters passed by reference.
 *
 * The function statement presents the & reference char in
 * different places (& $p1 and &$p2).
 *
 * @warning  unstable
 * @param (string) $p1 the 1st parameter
 * @param (bool) $p2 the 2nd parameter
 *                   has a two-line comment
 * @return (string) the function result
 */
                            [code] => function fpbyref(& $p1, bool &$p2) {

  return $p1;
}
                            [line] => 49
                            [return_type] => string
                            [parameters] => string p1, bool p2
                            [member] => public
                        )

                    [description] => Array
                        (
                            [short] => A method with parameters passed by reference.
                            [long] => The function statement presents the & reference char in
different places (& $p1 and &$p2).
                        )

                    [param] => Array
                        (
                            [p1] => Array
                                (
                                    [type] => string
                                    [default] => 
                                    [reference] => yes
                                    [description] => the 1st parameter
                                )

                            [p2] => Array
                                (
                                    [type] => bool
                                    [default] => 
                                    [reference] => yes
                                    [description] => the 2nd parameter
                  has a two-line comment
                                )

                        )

                    [return] => Array
                        (
                            [0] => Array
                                (
                                    [type] => string
                                    [description] => the function result
                                )

                        )

                    [info] => Array
                        (
                            [warning] => unstable
                        )

                )

        )

    [private_method] => Array
        (
            [mlotinf] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* A method with a lot @info items.
 *
 * The function statement presents default values and casting.
 *
 * @param (int) $p1 the first parameter
 * @param (mixed) $p2 a text (string) as regular entry
 *                    or false (bool) to get a particualr behavior
 * @param (string) $p3 the third parameter
 *                  is commented onto
 *                  three lines
 * @param (array) $p4 a structured list:
 *                    'name' => the user name
 *                    'address' => the user address
 *                    'city' => the city name
 * @return (void) if echo flag $p1 is true,
 *                the comment continue on a three
 *                lines to test return values parsing
 *         (string) the printable result if echo flag is false (default)
 */
                            [code] => private function mlotinf($p1, $p2="a string", string $p3 = "another string", $p4) {

  if ($p1) {
    return;
  } else {
    return "whatever";
  }
}
                            [line] => 74
                            [return_type] => mixed
                            [parameters] => int p1 [, mixed p2 [, string p3, array p4]]
                            [member] => private
                        )

                    [info] => Array
                        (
                            [private] => yes
                        )

                    [description] => Array
                        (
                            [short] => A method with a lot @info items.
                            [long] => The function statement presents default values and casting.
                        )

                    [param] => Array
                        (
                            [p1] => Array
                                (
                                    [type] => int
                                    [default] => 
                                    [reference] => 
                                    [description] => the first parameter
                                )

                            [p2] => Array
                                (
                                    [type] => mixed
                                    [default] => "a string"
                                    [reference] => 
                                    [description] => a text (string) as regular entry
                   or false (bool) to get a particualr behavior
                                )

                            [p3] => Array
                                (
                                    [type] => string
                                    [default] => "another string"
                                    [reference] => 
                                    [description] => the third parameter
                 is commented onto
                 three lines
                                )

                            [p4] => Array
                                (
                                    [type] => array
                                    [default] => 
                                    [reference] => 
                                    [description] => a structured list:
                   'name' => the user name
                   'address' => the user address
                   'city' => the city name
                                )

                        )

                    [return] => Array
                        (
                            [0] => Array
                                (
                                    [type] => void
                                    [description] => if echo flag $p1 is true,
               the comment continue on a three
               lines to test return values parsing
                                )

                            [1] => Array
                                (
                                    [type] => string
                                    [description] => the printable result if echo flag is false (default)
                                )

                        )

                )

        )

    [protected_method] => Array
        (
            [f3param] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* A method with 3 parameters.
 *
 * @param (string) $p1 the first parameter
 * @param (int) $p2 the second parameter
 * @param (string) $p3 the 3rd parameter
 * @return (void)
 */
                            [code] => protected function f3param($p1, int $p2, string $p3) {

  // Print the 3 parameters
  echo $p1 . "\n";
  echo $p2 . "\n";
  echo $p3 . "\n";

  return true;
}
                            [line] => 27
                            [return_type] => void
                            [parameters] => string p1, int p2, string p3
                            [member] => protected
                        )

                    [info] => Array
                        (
                            [protected] => yes
                        )

                    [description] => Array
                        (
                            [short] => A method with 3 parameters.
                        )

                    [param] => Array
                        (
                            [p1] => Array
                                (
                                    [type] => string
                                    [default] => 
                                    [reference] => 
                                    [description] => the first parameter
                                )

                            [p2] => Array
                                (
                                    [type] => int
                                    [default] => 
                                    [reference] => 
                                    [description] => the second parameter
                                )

                            [p3] => Array
                                (
                                    [type] => string
                                    [default] => 
                                    [reference] => 
                                    [description] => the 3rd parameter
                                )

                        )

                    [return] => Array
                        (
                            [0] => Array
                                (
                                    [type] => void
                                    [description] => 
                                )

                        )

                )

        )

    [public_property] => Array
        (
        )

    [private_property] => Array
        (
        )

    [protected_property] => Array
        (
        )

)