View Mdoc internals of Abstract1

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

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

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

            [constants] => 0
        )

    [property] => Array
        (
            [count] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* Integer counter.
 *
 * For your information, properties cannot be declared abstract in PHP5.
 */
                            [code] => public $count = 1;
                            [initial] => 1
                            [line] => 24
                            [member] => public
                        )

                    [info] => Array
                        (
                            [public] => yes
                            [type] => 
                        )

                    [description] => Array
                        (
                            [short] => Integer counter.
                            [long] => For your information, properties cannot be declared abstract in PHP5.
                        )

                )

        )

    [method] => Array
        (
            [m3param] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* A method with 3 parameters.
 *
 * Force extending class to define this method.
 *
 * @experimental
 * @param (string) $p1 the first parameter
 * @param (int) $p2 the second parameter
 * @param (bool) $p3 the 3rd parameter
 * @return (void)
 */
                            [code] => abstract protected function m3param($p1, int $p2, $p3 = true);
                            [line] => 37
                            [return_type] => void
                            [parameters] => string p1, int p2, bool p3
                            [member] => protected abstract
                        )

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

                    [description] => Array
                        (
                            [short] => A method with 3 parameters.
                            [long] => Force extending class to define this method.
                        )

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

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

                            [p3] => Array
                                (
                                    [type] => bool
                                    [description] => the 3rd parameter
                                )

                        )

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

                        )

                )

            [mpbyref] => 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] => private function mpbyref(& $p1, bool &$p2) {

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

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

                    [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
                                )

                        )

                )

            [mlotinf] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* A method with a lot @info items.
 *
 * The function statement presents default values and casting.
 *
 * @warning  unstable
 * @forfun   a dummy comment on two lines to test 
 *           @info parsing
 * @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] => protected function mlotinf($p1, $p2="a string", string $p3 = "another string", $p4) {

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

                    [info] => Array
                        (
                            [protected] => yes
                            [warning] => unstable
                            [forfun] => a dummy comment on two lines to test 
          @info parsing
                        )

                    [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
        (
        )

    [private_method] => Array
        (
            [mpbyref] => 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] => private function mpbyref(& $p1, bool &$p2) {

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

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

                    [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
                                )

                        )

                )

        )

    [protected_method] => Array
        (
            [m3param] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* A method with 3 parameters.
 *
 * Force extending class to define this method.
 *
 * @experimental
 * @param (string) $p1 the first parameter
 * @param (int) $p2 the second parameter
 * @param (bool) $p3 the 3rd parameter
 * @return (void)
 */
                            [code] => abstract protected function m3param($p1, int $p2, $p3 = true);
                            [line] => 37
                            [return_type] => void
                            [parameters] => string p1, int p2, bool p3
                            [member] => protected abstract
                        )

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

                    [description] => Array
                        (
                            [short] => A method with 3 parameters.
                            [long] => Force extending class to define this method.
                        )

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

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

                            [p3] => Array
                                (
                                    [type] => bool
                                    [description] => the 3rd parameter
                                )

                        )

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

                        )

                )

            [mlotinf] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* A method with a lot @info items.
 *
 * The function statement presents default values and casting.
 *
 * @warning  unstable
 * @forfun   a dummy comment on two lines to test 
 *           @info parsing
 * @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] => protected function mlotinf($p1, $p2="a string", string $p3 = "another string", $p4) {

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

                    [info] => Array
                        (
                            [protected] => yes
                            [warning] => unstable
                            [forfun] => a dummy comment on two lines to test 
          @info parsing
                        )

                    [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_property] => Array
        (
            [count] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* Integer counter.
 *
 * For your information, properties cannot be declared abstract in PHP5.
 */
                            [code] => public $count = 1;
                            [initial] => 1
                            [line] => 24
                            [member] => public
                        )

                    [info] => Array
                        (
                            [public] => yes
                            [type] => 
                        )

                    [description] => Array
                        (
                            [short] => Integer counter.
                            [long] => For your information, properties cannot be declared abstract in PHP5.
                        )

                )

        )

    [private_property] => Array
        (
        )

    [protected_property] => Array
        (
        )

)