この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:6
ページ更新者:guest
更新日時:2026-06-11 07:07:02

タイトル: コメント
SEOタイトル: PHP コメント完全ガイド (// / # / /* */ / PHPDoc)

この記事の要点
  • PHP のコメントは // 1 行 / # 1 行 / /* 複数行 */ / /** PHPDoc */ の 4 種
  • PHPDoc /** ... */ は IDE 補完・静的解析 (PHPStan/Psalm) の型情報源として活躍
  • 主要タグ: @param / @return / @throws / @var / @deprecated / @see / @since
  • PSR-5 が PHPDoc の仕様 (Draft)、phpDocumentor でドキュメント自動生成
  • アンチパターン: 「コメントで挙動を説明する」より「関数名 / 変数名で表現」。コメントは"why"を書く

4 種類のコメント構文

PHPDoc の主要タグ

タグ用途
@param引数の型と説明@param int $id ユーザー ID
@return戻り値の型と説明@return User|null
@throws投げる例外@throws NotFoundException
@varプロパティ / 変数の型@var array
@deprecated非推奨マーク@deprecated 1.5 use bar()
@see関連参照@see User::find()
@since追加バージョン@since 2.0.0
@author作成者@author Taro
@link外部参照 URL@link https://example.com/docs
@templateジェネリクス (Psalm/PHPStan)@template T of Model
@internal内部使用専用

関数コメントの実例

クラス / プロパティコメント

 ID → User のキャッシュ
     */
    private array $cache = [];

    /**
     * @var \PDO データベース接続
     */
    private \PDO $pdo;

    /** @var int キャッシュ有効秒数 */
    private const TTL = 300;
}

静的解析ツールとの連携

ツール役割PHPDoc 活用
PHPStan静的解析・型チェックジェネリクス / 配列 shape 推論
Psalm静的解析・型チェック厳密な型推論
PhpStorm / VS CodeIDE 補完引数 / 戻り値ヒント
phpDocumentorAPI ドキュメント生成HTML 出力
Doctum / Samiドキュメント生成Symfony / Laravel 系で人気

PHPDoc 専用の型表現

      $names    キー int、値 string の配列
 * @param array      $scores   キー string、値 int
 * @param list            $tags     0 始まり連番の配列
 * @param array{name: string, age: int} $user shape 指定
 * @param 'asc'|'desc'            $order    リテラル型 (PHP 8.1+ Enum 代替)
 * @param int<1, 100>             $page     範囲指定
 * @param non-empty-string        $title    空文字不可
 * @return Generator             戻り値の Iterator 中身
 */
function search(array $names, array $scores, array $tags, array $user, string $order, int $page, string $title): \Generator {
    // ...
}

コメントのアンチパターン

= 0) {
    $order->markAsPaid();
}

// ✅ TODO / FIXME / XXX (IDE で抽出可能)
// TODO: PHP 8.2 で readonly class に置き換え
// FIXME: タイムゾーン考慮漏れ

他言語との対比

言語1 行複数行ドキュメント
PHP// #/* */PHPDoc /** */
JavaScript///* */JSDoc /** */
Java///* */JavaDoc /** */
Python#''' '''docstring + Sphinx
Ruby#=begin =endYARD / RDoc
Go///* */godoc (コメント自体)

FAQ

Q: //#、どちらを使うべき?
A: PSR-12 では特に規定なし。チーム慣習に従う。一般的に // が多数派です。

Q: PHPDoc は書かないとダメ?
A: 型宣言 (PHP 7.0+) で補えれば省略可。ただし配列の中身 / ジェネリクス / 例外は型宣言で表現できないため PHPDoc が役立ちます。

Q: コメントは何語で書く?
A: チーム共通言語で。OSS は英語推奨。日本国内クローズドなら日本語 OK。混在は避ける。