Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Proper way to denote array data type for phpDocumentor?

Which of the following is the proper way to document the return type of this method for phpDocumentor?

Method 1:

/**
 * @return array Foo array.
 */
public function foo() {
    return array(1, 2, 3);
}

Method 2:

/**
 * @return integer[] Foo array.
 */
public function foo() {
    return array(1, 2, 3);
}

Also, are there any IDE implications from either method?

Edit:

It appears that both PhpStorm and Netbeans 7.1+ IDEs support the 2nd method.

like image 369
FtDRbwLXw6 Avatar asked Aug 09 '12 16:08

FtDRbwLXw6


2 Answers

Both methods are technically correct, but this one is considered 'better' because it's more specific (int and integer are interchangeable):

@return int[]

Documented here:

http://www.phpdoc.org/docs/latest/guides/types.html

like image 171
Evert Avatar answered Oct 22 '22 06:10

Evert


At the moment of writing this answer, these are the accepted ways of phpDocumentor (and probably other PHPDoc implementations) to denote an array:

  1. unspecified, no definition of the contents of the represented array is given. Example: @return array

  2. specified containing a single type, the Type definition informs the reader of the type of each array element. Only one Type is then expected as element for a given array. Example: @return int[]

    Please note that mixed is also a single type and with this keyword it is possible to indicate that each array element contains any possible type.

  3. specified containing multiple types, the Type definition informs the reader of the type of each array element. Each element can be of any of the given types. Example: @return (int|string)[]
like image 23
emegeve Avatar answered Oct 22 '22 08:10

emegeve