このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
psr:psr5 [2020/05/18 17:07] y2sunlight [キーワード] |
psr:psr5 [2020/07/28 13:59] tanaka [PSR-5: PHPDoc Standard(Draft)] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | > | ||
- | |||
- | ----- | ||
- | |||
====== PSR-5: PHPDoc Standard(Draft) ====== | ====== PSR-5: PHPDoc Standard(Draft) ====== | ||
行 9: | 行 5: | ||
本章は、若干の補足を加筆してはいるものの単に[[https:// | 本章は、若干の補足を加筆してはいるものの単に[[https:// | ||
- | ==== 目次 ==== | + | 関連記事 |
- | * [[psr:top|PHP - PHP標準勧告]] | + | |
+ | * [[psr:top|PSR - PHP標準勧告]] | ||
* [[psr: | * [[psr: | ||
* [[psr: | * [[psr: | ||
行 16: | 行 13: | ||
* PSR-5: PHPDoc Standard(Draft) - PHPDoc規約 | * PSR-5: PHPDoc Standard(Draft) - PHPDoc規約 | ||
* [[psr: | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
\\ | \\ | ||
行 487: | 行 494: | ||
- **object**:のタイプが適用される要素は、未定義クラスのインスタンスです。\\ \\ | - **object**:のタイプが適用される要素は、未定義クラスのインスタンスです。\\ \\ | ||
- **array**:このタイプが適用される要素は値の配列です。\\ \\ | - **array**:このタイプが適用される要素は値の配列です。\\ \\ | ||
- | - **iterable**:この型が適用される要素は、PHPの定義による配列またはTraversableオブジェクトです。\\ \\ | + | - **iterable**:この型が適用される要素は、PHPの定義による配列(array) |
- **resource**:このタイプが適用される要素は、PHPの定義によるリソースです。\\ \\ | - **resource**:このタイプが適用される要素は、PHPの定義によるリソースです。\\ \\ | ||
- **mixed**:このタイプが適用される要素は、ここで指定された任意のタイプにすることができます。コンパイル時にどのタイプが使用されるかは不明です。\\ \\ | - **mixed**:このタイプが適用される要素は、ここで指定された任意のタイプにすることができます。コンパイル時にどのタイプが使用されるかは不明です。\\ \\ | ||
- | - **void**:このタイプは通常、メソッドまたは関数の戻り値のタイプを定義するときにのみ使用され、「何も返されない」ことを示します。したがって、ユーザーは戻り値に頼る頼るべきではありません。\\ \\ **例1:**<code php> | + | - **void**:このタイプは通常、メソッドまたは関数の戻り値のタイプを定義するときにのみ使用され、「何も返されない」ことを示します。したがって、ユーザーは戻り値に頼る頼るべきではありません。\\ \\ **例1:**<code php> |
/** | /** | ||
* @return void | * @return void | ||
行 498: | 行 505: | ||
echo 'Hello world'; | echo 'Hello world'; | ||
} | } | ||
- | </ | + | </ |
/** | /** | ||
* @param bool $quiet when true 'Hello world' is echo-ed. | * @param bool $quiet when true 'Hello world' is echo-ed. | ||
行 511: | 行 518: | ||
echo 'Hello world'; | echo 'Hello world'; | ||
} | } | ||
- | </ | + | </ |
- | - **null**:このタイプが適用される要素は **NULL** 値であり、さもなくば専門用語としては存在しません。\\ \\ voidとの大きな違いは、このタイプは、記述された要素がいつでも明示的な **NULL** 値を含む可能性があるあらゆる状況で使用されるということです。\\ \\ **例1:** \\ \\ <code php> | + | - **null**:このタイプが適用される要素は **NULL** 値であるか、さもなくば技術的には存在しません。\\ \\ voidとの大きな違いは、このタイプは、記述された要素がいつでも明示的な **NULL** 値を含む可能性があるあらゆる状況で使用されるということです。\\ \\ **例1:** \\ \\ <code php> |
/** | /** | ||
* @return null | * @return null | ||
行 521: | 行 528: | ||
return null; | return null; | ||
} | } | ||
- | </ | + | </ |
/** | /** | ||
* @param bool $create_new When true returns a new stdClass. | * @param bool $create_new When true returns a new stdClass. | ||
行 534: | 行 541: | ||
return null; | return null; | ||
} | } | ||
- | </ | + | </ |
+ | - **callable**:このタイプが適用される要素は、関数呼び出しへのポインターです。これは、PHPの定義による呼び出し可能('' | ||
+ | - **self**:この型が適用される要素は、ドキュメント化された要素がもともと含まれていたのと同じクラスです。< | ||
+ | === 例: === | ||
+ | > メソッド c はクラス A に含まれています。**DocBlock** は、戻り値の型が **self** であることを示しています。そのため、メソッド c はクラス A のインスタンスを返します。 | ||
+ | |||
+ | これは、継承が関与しているときに混乱する状況につながる可能性があります。 | ||
+ | |||
+ | === 例(前の例の状況が引き続き適用されます): === | ||
+ | |||
+ | > クラス B はクラス A を拡張し、メソッドcを再定義しません。そのため、クラス B からメソッド c を呼び出すことができます。 | ||
+ | |||
+ | この状況では、**self** がクラス A または B のいづれかとして解釈されるため、あいまいさが生じる可能性があります。これらの場合、**self** は、**self** タイプを含む **DocBlock** が記述されているクラスのインスタンスであると解釈しなければなりません ('' | ||
+ | |||
+ | 上記の例で、**self** はクラス A のメソッド c で定義されているため、常にクラスAを参照する必要があります('' | ||
+ | |||
+ | > 上記の性質により、この情報を収集し形成化するアプリケーションでは、クラスの各表現とともに子クラスのリストを表示することをお勧めします ('' | ||
+ | </ | ||
+ | - **static**:この型が適用される要素は、ドキュメント化された要素が含まれているのと同じクラスであるか、またはサブクラスで見つかった場合、元のクラスではなくそのサブクラスの型です。\\ \\ このキーワードは、PHPで定義されている(静的メソッドやプロパティ、または変数修飾子でもない)[[https:// | ||
+ | - **$this**:このタイプが適用される要素は、与えられたコンテキストの現在のクラスとまったく同じインスタンスです。そのため、返されるインスタンスは同じクラスだけでなく同じインスタンスでなければならないので、このタイプは static のより厳密なバージョンという事になります。\\ \\ このタイプは、[[https:// | ||
\\ | \\ | ||