如何使用子数组(混合类型)记录数组?

时间:2014-09-03 22:42:42

标签: php arrays documentation-generation

记录一个变量,该变量可以接受一个接收值为字符串的向量的数组:

/*
 * @var string[] An array of string objects.
 */
$foo = array('A', 'B', 'C');

记录一个变量,该变量可以接收一个接收值为整数的向量的数组:

/*
 * @var int[] An array of string objects.
 */
$foo = array(1, 5, 0);

我应该如何记录其值为混合数组的变量?

我需要记录一个这样的数组:

$foo = array(
    array('value A',  1, $this),
    array('value b',  2, NULL),
    array('value X', 15, new Test)
);

我想它是这样的:

/*
 * @var array[][string|int|object|null] Description.
 */

1 个答案:

答案 0 :(得分:4)

根据PHPDoc的current draft(图PSR-5申请人),@ var标记为deprecated。他们建议改为使用@type tag

变量的类型仍然是一个数组;该数组的内容将在描述中简要提及。

/**
 * @var array $foo An array of string elements.
 */

/**
 * @type array $foo An array of string elements.
 */

如果变量可能包含字符串以外的内容,我可能会说An array of mixed elements.,或者我具体知道它们可能是什么An array of bool|string|object elements.

如果变量本身可能是各种类型,我会给出它可能的类型列表。

/**
 * @type bool|string|array $foo Mixed type, depending on result of baz().
 */