Was bedeutet @param in einer Klasse?

Lesezeit: 2 Minuten

Benutzer-Avatar
Chris

Was bedeutet @param beim Erstellen einer Klasse? Soweit ich weiß, wird es verwendet, um dem Skript mitzuteilen, welche Art von Datentyp die Variablen sind und welche Art von Wert eine Funktion zurückgibt, ist das richtig? Zum Beispiel:

/**
 * @param string $some
 * @param array $some2
 * @return void
 */

Gibt es da keine andere Möglichkeit, ich denke da an Dinge wie: void function() { ... } oder sowas ähnliches. Und für Variablen vielleicht (int)$test;

@param hat in PHP keine besondere Bedeutung, es wird normalerweise innerhalb eines Kommentars verwendet, um Dokumentation zu schreiben. Das Beispiel, das Sie bereitgestellt haben, zeigt genau das.

Wenn Sie ein Dokumentationstool verwenden, durchsucht es den Code nach @param, @summaryund andere ähnliche Werte (abhängig von der Ausgereiftheit des Tools), um automatisch eine gut formatierte Dokumentation für den Code zu generieren.

  • Also wurde es nie vom Programm ausgeführt?

    – Fauzan Edris

    4. Dezember 2020 um 8:03 Uhr

Wie andere bereits erwähnt haben, ist der @param, auf den Sie sich beziehen, Teil eines Kommentars und nicht syntaktisch signifikant. Es ist einfach dazu da, einem Dokumentationsgenerator Hinweise zu geben. Weitere Informationen zu den unterstützten Direktiven und der Syntax finden Sie in der PHPDoc Projekt.

Apropos zweiter Teil Ihrer Frage … Soweit ich weiß, gibt es keine Möglichkeit, den Rückgabetyp in PHP anzugeben. Sie können auch nicht erzwingen, dass die Parameter einen bestimmten primitiven Typ haben (String, Integer usw.).

Sie können jedoch verlangen, dass die Parameter entweder ein Array, ein Objekt oder ein bestimmter Objekttyp ab PHP 5.1 oder so sind.

function importArray(array $myArray)
{
}

PHP gibt einen Fehler aus, wenn Sie versuchen, diese Methode mit etwas anderem als einem Array aufzurufen.

class MyClass
{
}

function doStuff(MyClass $o)
{
}

Wenn Sie versuchen, doStuff mit einem Objekt eines beliebigen Typs außer MyClasswird PHP erneut einen Fehler ausgeben.

Ich weiß, das ist alt, aber nur als Referenz, die Antwort auf den zweiten Teil der Frage lautet jetzt: PHP7.

// this function accepts and returns an int
 function age(int $age): int{

  return 18;
}

PHP ignoriert Kommentare völlig. Es wird verwendet, um die Parameter zu beschreiben, die die Methode nur benötigt, um den Code lesbarer und verständlicher zu machen.

Darüber hinaus sieht eine gute Codepraxis vor, bestimmte Namen zu verwenden (z @param), für Dokumentationsgeneratoren.

Einige IDEs enthalten die @param und andere Informationen im Tooltip, wenn Sie den Mauszeiger über die entsprechende Methode bewegen.

@param ist ein Teil des Beschreibungskommentars, der Ihnen sagt, was der Typ des Eingabeparameters ist. Das hat nichts mit der Codesyntax zu tun. Verwenden Sie einen farbunterstützten Editor wie Notepad++, um einfach zu sehen, was Code und was Kommentare sind.

1143060cookie-checkWas bedeutet @param in einer Klasse?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy