2012-01-23 8 views
13

クラスを作成するときの@paramの意味は何ですか?私が理解する限り、変数にどのような種類のデータ型があり、関数が返す値の種類をスクリプトに伝えるのに使われます。たとえば :void function() { ... }またはそのような何か:@paramはクラス内で何を意味しますか?

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

Isn'tそれを行うが、他の方法、私のようなものを考えています。そして変数のために多分(int)$ test;

+0

あなたは[PHPDOC](http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.pkgを参照してくださいhttp://manual.phpdoc.org/HTMLframesConverter/default/ – Maerlyn

+0

をチェックアウトする必要があります。 html)を参照してください。 – Xeoncross

答えて

16

@paramはPHPで特別な意味を持ちませんが、通常はコメント内でドキュメントを書くために使用されます。あなたが提供した例はそれを示しています。

ドキュメントツールを使用する場合は、@param,@summaryなどの類似の値(ツールの高度化によって異なります)を精査して、コード用の適切な書式のドキュメントを自動的に生成します。

1

PHPは完全にコメントに気付いていません。このメソッドは、コードをより読みやすく分かりやすくするために必要なパラメータを記述するために使用されます。

また、適切なコードの練習では、特定の名前(例:@param)をドキュメントジェネレータ用に使用しています。

一部のIDEには、該当するメソッドをホバリングするときにツールチップに@paramなどの情報が含まれます。

+1

PHPがコメントに気づいていないことは全く真実ではありません。PHPのリフレクションAPIは、ドキュメンテーションのコメントを具体的に解釈することができ、Doctrineのようないくつかのプロジェクトはメタ構成のために頻繁に使用します。 http://www.php.net/manual/ja/intro.reflection.php – redreinard

2

あなたが言及している@paramは、コメントの一部であり、構文的に重要ではないと述べた人もいます。ドキュメント生成ツールにヒントを提供するだけです。サポートされているディレクティブと構文の詳細については、PHPDocプロジェクトを参照してください。

あなたの質問の第2部では...私が知る限り、PHPでは戻り値の型を指定する方法はありません。また、パラメータを特定のプリミティブ型(文字列、整数など)にすることもできません。

ただし、PHP 5.1以降では、パラメータは配列、オブジェクト、または特定のタイプのオブジェクトである必要があります。

function importArray(array $myArray) 
{ 
} 

このメソッドを配列以外のもので呼び出すと、PHPでエラーがスローされます。

class MyClass 
{ 
} 

function doStuff(MyClass $o) 
{ 
} 

あなたがMyClassを除く任意の型のオブジェクトとdoStuffを呼び出そうとした場合、PHPは、再びエラーがスローされます。

0

@paramは、入力パラメータの種類を示す説明コメントの一部です。これはコードの構文とは関係ありません。メモ帳++などのサポートされているカラーエディターを使用して、whatsコードとwhatsコメントを簡単に表示します。

2

私はこれが古かったのですが、参考のために、質問の2番目の部分への回答は今、PHP7です。

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

    return 18; 
} 
関連する問題