View Mdoc internals of Interface1

Array
(
    [main] => Array
        (
            [language] => PHP
            [type] => interface
            [name] => Interface1
            [source] => Array
                (
                    [comment] => /**
 * A class for interface parsing tests.
 *
 * Only the "public" scope is authorized in interface.
 *
 * No code is declared to force the extending class defining
 * this method.
 *
 * @author    JM Faure 
 * @version   1.0
 * @date      09 Aug 2005
 */
                    [declaration] => interface Interface1 extends Interface2
                    [line] => 34
                    [extends] => Interface2
                )

            [description] => Array
                (
                    [short] => A class for interface parsing tests.
                    [long] => Only the "public" scope is authorized in interface.

No code is declared to force the extending class defining
this method.
                )

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

            [constants] => 3
        )

    [constant_group] => Array
        (
            [1] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* API constants group.
 *
 * Defining API constants at the interface level is a good idea.
 */
                            [code] => define("API_CONST_ONE", 1);    // case constant ONE
define("API_CONST_TWO", 2);    // case constant TWO
define("API_CONST_THREE", 3);  // case constant THREE
                            [line] => 18
                        )

                    [description] => Array
                        (
                            [short] => API constants group.
                            [long] => Defining API constants at the interface level is a good idea.
                        )

                    [constant] => Array
                        (
                            [API_CONST_ONE] => Array
                                (
                                    [line] => 18
                                    [comment] => case constant ONE
                                    [code] => define("API_CONST_ONE", 1);
                                    [value] => 1
                                )

                            [API_CONST_TWO] => Array
                                (
                                    [line] => 19
                                    [comment] => case constant TWO
                                    [code] => define("API_CONST_TWO", 2);
                                    [value] => 2
                                )

                            [API_CONST_THREE] => Array
                                (
                                    [line] => 20
                                    [comment] => case constant THREE
                                    [code] => define("API_CONST_THREE", 3);
                                    [value] => 3
                                )

                        )

                )

        )

    [method] => Array
        (
            [i3param] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* A method with 3 parameters.
 *
 * Access type for interface this method is omitted because 
 * public is the default access type (but it isn't a nice
 * practice. 
 *
 * @param (string) $p1 the first parameter
 * @param (int) $p2 the second parameter
 * @param (bool) $p3 the 3rd parameter
 * @return (void)
 */
                            [code] => function i3param($p1, int $p2, $p3 = true);
                            [line] => 48
                            [return_type] => void
                            [parameters] => string p1, int p2, bool p3
                            [member] => public
                        )

                    [description] => Array
                        (
                            [short] => A method with 3 parameters.
                            [long] => Access type for interface this method is omitted because 
public is the default access type (but it isn't a nice
practice.
                        )

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

                        )

                )

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

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

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

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

                            [p2] => Array
                                (
                                    [type] => bool
                                    [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.
 *
 * @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] => public function mlotinf($p1, string $p2="a string", $p3 = "another string", $p4);
                            [line] => 83
                            [return_type] => mixed
                            [parameters] => int p1, mixed p2, string p3, array p4
                            [member] => public
                        )

                    [info] => Array
                        (
                            [public] => 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
                                    [description] => the first parameter
                                )

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

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

                            [p4] => Array
                                (
                                    [type] => array
                                    [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
        (
            [i3param] => Array
                (
                    [source] => Array
                        (
                            [comment] => /**
* A method with 3 parameters.
 *
 * Access type for interface this method is omitted because 
 * public is the default access type (but it isn't a nice
 * practice. 
 *
 * @param (string) $p1 the first parameter
 * @param (int) $p2 the second parameter
 * @param (bool) $p3 the 3rd parameter
 * @return (void)
 */
                            [code] => function i3param($p1, int $p2, $p3 = true);
                            [line] => 48
                            [return_type] => void
                            [parameters] => string p1, int p2, bool p3
                            [member] => public
                        )

                    [description] => Array
                        (
                            [short] => A method with 3 parameters.
                            [long] => Access type for interface this method is omitted because 
public is the default access type (but it isn't a nice
practice.
                        )

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

                        )

                )

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

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

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

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

                            [p2] => Array
                                (
                                    [type] => bool
                                    [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.
 *
 * @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] => public function mlotinf($p1, string $p2="a string", $p3 = "another string", $p4);
                            [line] => 83
                            [return_type] => mixed
                            [parameters] => int p1, mixed p2, string p3, array p4
                            [member] => public
                        )

                    [info] => Array
                        (
                            [public] => 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
                                    [description] => the first parameter
                                )

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

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

                            [p4] => Array
                                (
                                    [type] => array
                                    [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)
                                )

                        )

                )

        )

    [private_method] => Array
        (
        )

    [protected_method] => Array
        (
        )

    [public_property] => Array
        (
        )

    [private_property] => Array
        (
        )

    [protected_property] => Array
        (
        )

)