2014-09-03 39 views
5

爲了記錄,可以採取其接收其值串的矢量陣列的變量:如何使用子陣列(混合類型)文件數組?

/* 
* @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

@var array []一組混合對象。 – 2014-09-03 22:54:05

+1

'@var mixed []一組混合對象'。 – 2014-09-03 23:04:22

+1

「混合表示一個參數可以接受多個(但不一定是全部)類型。」 (http://php.net/manual/de/language.pseudo-types.php) - 正確地說,這不適用於這裏,因爲內部值都是數組而不是混合的。 – YMMD 2014-09-03 23:10:24

回答

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(). 
*/ 
+0

Thanks,Maybe'@type \ ArrayObject <\ ArrayObject >'? – 2014-09-04 02:22:25

+0

編號PHP的變量有一個[type](http://php.net/manual/en/language.types.php「PHP.net」)。數組是數組**類型**。一個數組包含元素。一個類的實例是一個對象**類型**,它可能有屬性。所以'@type array $ nameOfVariable變量的描述'當描述變量的內容時,要簡短。使用管道符號('|')分隔**類型**,因爲內容可能是「this OR that」** type **。在文檔中,避免混淆是非常重要的,所以當你指'元素'時不要使用「對象」這個詞。 – Amgine 2014-09-04 03:17:30

+0

和子數組? – 2014-09-04 03:53:00