# ch03 — コメント

Source: https://php-school.pages.dev/topics/hello/ch03-comments/
Site: AIと学ぶPHPの学校 (https://php-school.pages.dev)
Lesson: PHPをはじめよう
Level: L1

Reference (official): https://www.php.net/manual/ja/language.basic-syntax.php

## 本文

# ch03 — コメント

## 概要

コメントはソースコードに書く **PHP が実行しない注釈** で、コードを読み返したときの理解を助ける。動作には影響しないが、現場では **「なぜこの処理を書いたか」を残すための主役** になるくらい重要だ。

PHP には 1 行コメントが **2 種類** あり、`//` (スラッシュ 2 つ) と `#` (シャープ) はどちらも行末までをコメント扱いにする。複数行は `/* */` で囲むが、閉じ忘れに注意が必要だ。同じ「コメント」でも 3 つの書式が共存しているのは、PHP が長い歴史の中で複数の文化を取り込んで育った経緯がそのまま残っているため。なお `/** */` で始まる **PHPDoc** という別書式もあるが、IDE 補助やドキュメント生成のための仕様でこの章では扱わない。

初学者がコメントを覚える最大の実用メリットは **デバッグ時の「コメントアウト」** だ。動かなくなったコードのうち、怪しい行だけを一時的に `//` で無効化して切り分けると、原因の箇所がぐっと絞り込める。本章のドリル 03 はこの体験そのもので、後の章で必ず役に立つ手筋を最初に仕込んでおく。

## 学習目標

- `//` で 1 行コメントを書ける
- `#` も 1 行コメントとして使えると知っている
- `/* */` で複数行コメントを書ける
- 既存コードをコメントアウトして無効化できる

## 所要時間

スライド 3 分 + ドリル 3 問 = **12 分**

## ドリル

| no | 内容 |
|---|---|
| 01 | `//` で 1 行コメントを書く |
| 02 | `/* */` で複数行コメントを書く |
| 03 | 既存コードの一部をコメントアウトして期待出力に合わせる |

## 採点

```bash
php scripts/grade.php topics/hello/ch03-comments/drill/01-single-line/
```

## 関連チャプター

- [`ch02-write-program`](../ch02-write-program/) — `echo` とセミコロン (このチャプターの前提)
- [`ch04-html-mix`](../ch04-html-mix/) — HTML と PHP の共存
- [`ch05-variables`](../ch05-variables/) — 変数に進む次の章

## スライド

---
marp: true
theme: dojo
paginate: true
size: 16:9
---

<!--
LLM_CONTEXT:
  Lesson 1 / Chapter 3
  目的: コメント記法 (// # /* */) を使い分け、コードを無効化できる
  扱わない: 変数 (ch05) / HTML 共存 (ch04) / PHPDoc (後続章)
  読み上げ時間目安: 3 分
-->

# コメント

Lesson 1 / Chapter 3

---

## コメントとは

```php
<?php
// この行は実行されない
echo "実行される\n";
```

- **PHP が無視する文字列**
- 自分や他人へのメモを書く場所
- 一時的にコードを無効化するのにも使う

---

## 1 行コメント: `//` と `#`

```php
<?php
// スラッシュ 2 つ
echo "A\n";

# シャープ 1 つ
echo "B\n";
```

- どちらも **その行の最後まで** がコメント
- `//` のほうが一般的
- `#` はシェルスクリプトでよく見るのと同じ書き方

---

## 複数行コメント: `/* */`

```php
<?php
/*
ここは
何行でも
コメントになる
*/
echo "本文\n";
```

- `/*` で開始、`*/` で終了
- 間に書いた文は **全部無視される**
- 複数行のメモや、長いコードの一時無効化に使う

---

## コメントアウト

```php
<?php
echo "1\n";
// echo "2\n";
echo "3\n";
```

実行結果:

```
1
3
```

- 行頭に `//` を付けるとその行だけ無効になる
- バグを切り分けるとき、よく使うテクニック

---

## このチャプターでできるようになること

✅ `//` `#` で 1 行コメントを書ける
✅ `/* */` で複数行コメントを書ける
✅ 既存コードを一時的に無効化できる

→ ドリルへ
