2014-09-03 13 views
5

değerleri dizeleri bir vektör alan bir dizi alabilir bir değişken belge için

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

Değerleri karışık diziler olan bir değişkeni nasıl belgelemeliyim?

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

bunun böyle bir şey hayal:

Böyle bir diziyi belgelemek gerek

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

@var dizisi [] Karışık nesneler dizisi. –

+1

'@var mixed [] Karışık nesneler dizisi. –

+1

"karışık, bir parametrenin birden çok (ancak tümü değil) türlerini kabul edebileceğini gösterir." (http://php.net/manual/de/language.pseudo-types.php) - düzgün bir şekilde konuşmak, burada geçerli değildir, çünkü içsel değerler tüm dizilerdir ve karışık değildir. – YMMD

cevap

4

phpdoc ait current draft (Şekil PSR-5 başvuran) göre, @var etiket deprecated şeklindedir. Bunun yerine bir @type tag kullanmanızı öneririz.

Değişken türü hala bir dizidir; Bu dizinin içeriği, açıklamada kısaca belirtilecektir.

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

veya

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

değişken dizeleri başka şeyler içerme olasılığı varsa

, ben An array of mixed elements. demek, yoksa değişken kendisi olabilir, onlar An array of bool|string|object elements.

ne olabileceğini özellikle bilselerdi olabilir çeşitli türlerde olabileceği türlerin listesini verirdim.

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

Teşekkürler, Belki '@type \ ArrayObject <\ ArrayObject >'? –

+0

Hayır. PHP'nin değişkenleri bir [tip] 'e sahiptir (http://php.net/manual/en/language.types.php "PHP.net"). Dizi bir dizi ** tip ** 'dir. Bir dizinin öğeleri vardır. Bir sınıfın bir örneği, ** tip ** bir nesnedir ve özelliklerine sahip olabilir. Yani @ type array $ nameOfVariable Değişkenin açıklaması 'Değişkenin içeriğini açıklarken, kısa ol. İçindekiler “bu VEYA bu” ** tip ** olabileceğinden, ** türlerini ** ayırmak için boru sembolünü ('|') kullanın. Dokümantasyonda, karışıklığı önlemek çok önemlidir, bu yüzden 'element' kelimesini kullanırken 'object' kelimesini kullanmayın. – Amgine

+0

Ve alt diziler? –