9

假设我有这样的功能:

function theFunction() {
    $arr = array();
    for ($i=0;$i<10;$i++) {
        $arr[] = new theObject($i);
    }
    return $arr;
}

我需要记录函数的返回类型。我当然可以只使用array,但这并不能提供可以提供的所有信息,也不能告诉开发人员该功能的真实性质。

如何在 PHPDoc 中记录类型“[type] 的数组”?

4

3 回答 3

13

来自phpDocumentor的文档

Type表示的值可以是一个数组。必须按照以下选项之一的格式定义类型:

  1. unspecified,没有给出表示数组内容的定义。例子:@return array

  2. 指定包含单个类型,类型定义通知读者每个数组元素的类型。然后,只期望一个 Type 作为给定数组的元素。

    例子:@return int[]

    请注意,混合也是一种单一类型,使用此关键字可以指示每个数组元素包含任何可能的类型。

  3. 指定包含多个类型,类型定义通知读者每个数组元素的类型。每个元素可以是任何给定类型。例子:@return (int|string)[]

    请注意
    ,许多 IDE 可能还不支持这种表示法。

于 2013-06-11T11:12:15.203 回答
5

在 PHPDoc 中,您可以对类型提示数组成员执行以下操作:

@var array<\My\Folder\ClassName>

更新

您还可以显式声明关联数组的键,如下所示:

@var array<string, \My\Folder\ClassName>

根据此处发布的答案,您甚至可以显式声明密钥,以防您想这样做:

/**
 * @return array[
 *  'controller' => string,
 *  'action' => string
 * ]
 */
于 2015-04-08T12:29:41.500 回答
-1

如果我没记错你提供了返回类型和描述,你能不把它放在描述中吗?

/**
 * blah
 * @return array array of types
 */
于 2013-06-11T11:11:07.540 回答