2013-06-11 20 views
7

sagen, dass ich eine Funktion wie diese:Wie dokumentiert man ein Array von [Typ]?

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

ich den Rückgabetyp der Funktion dokumentieren muß. Ich könnte natürlich nur array verwenden, aber das liefert nicht alle Informationen, die bereitgestellt werden können, und sagt dem Entwickler nicht viel über die wahre Natur der Funktion.

Wie dokumentiere ich den Typ "Array von [Typ]" in PHPDoc?

+0

haben Sie '@var Objecttype []' versucht? – Robert

+0

@Robert nein, aber die Suche ergab ein Ergebnis! :) http://www.phpdoc.org/docs/latest/for-users/types.html#arrays – Keelan

+0

Siehe https://github.com/phpDocumentor/phpDocumentor2/issues/650 –

Antwort

9

Aus der Dokumentation von phpDocumentor

Der nach Typ dargestellte Wert kann ein Array sein. Der Typ muss nach dem Format einer der folgenden Optionen definiert werden:

  1. unspezifiziert, keine Definition der Inhalte der dargestellten Anordnung gegeben. Beispiel: @return array

  2. spezifizierte einen einzigen Typen enthält, informiert die Typdefinition die Leser des Typs jeden Array-Elements. Es wird dann nur ein Typ als Element für ein gegebenes Array erwartet.

    Beispiel: @return int[]

    Bitte beachten Sie, dass gemischtes ist auch eine einzige Art und mit diesem Begriff ist es möglich, um anzuzeigen, dass jedes Array-Element jede mögliche Art enthält.

  3. angegeben, die mehrere Typen enthält, informiert die Typdefinition den Leser über den Typ jedes Arrayelements. Jedes Element kann einen beliebigen der angegebenen Typen aufweisen. Beispiel: @return (int|string)[]

    Hinweis
    viele IDEs wahrscheinlich diese Schreibweise noch nicht unterstützen.

+0

Für mehrere Typen scheint PHPSstorm auch okay mit 'int [] | string []', aber ich bin nicht sicher, dass es über '(int | string) []' empfohlen werden sollte. – gapple

+1

Ich glaube nicht, dass int [] | string [] dasselbe bedeutet wie (int | string) []. Die erste repräsentiert ein Array von int-Elementen oder ein Array von string-Elementen. Letzteres stellt ein Array dar, das Elemente beider Typen gemischt haben kann. –

1

Wenn ich mich recht erinnere, liefern Sie den Rückgabetyp und eine Beschreibung, können Sie es nicht in der Beschreibung eingeben?

/** 
* blah 
* @return array array of types 
*/ 
+0

Das mache ich jetzt , aber es wäre besser, den Standard Weg zu verwenden, wenn es existierte :) – Keelan

+0

@CamilStaps Ja, ich nehme an, es würde :) – Dale

0

In PHPDoc können Sie die folgenden Aktionen für Mitglieder Type Hinting-Array:

@var array<\My\Folder\ClassName> 
Verwandte Themen