# ch02 — PHP プログラムを書く

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

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

## 本文

# ch02 — PHP プログラムを書く

## 概要

PHP のコードは **`<?php ?>` というタグの中だけ実行される**。これは PHP がもともと「HTML の中に部分的にスクリプトを差し込むための言語」として生まれた歴史を反映していて、ファイルの中で **PHP として実行するゾーン** と **そのまま出力するゾーン (HTML)** を切り替える仕組みになっている。CLI で動かす単純なスクリプトでも、必ず `<?php` で始める必要がある。

このタグの中で最初に覚える命令が **`echo`**。これは「画面に文字を出す」もので、ターミナル CLI なら標準出力、Web なら HTTP レスポンスのボディに書き込まれる。同じ `echo` が用途を変えて使い回されるのが PHP の特徴で、後の web トピックでもこの `echo` の延長で HTML を生成することになる。

そして PHP 初学者の **最頻出エラー** が **セミコロン `;` の付け忘れ**。PHP は文の終わりを `;` で区切るので、`echo "Hello"` と書いて `;` を忘れると `Parse error: syntax error, unexpected ...` で動かなくなる。3 つのドリルで、まずファイルを作って動かす → 複数行出力 → セミコロン抜けエラーから直すという手順で、この文法の「形」を体に覚えさせる。

## 学習目標

- `<?php ?>` タグの意味を言える
- `echo` で文字列を画面に出せる
- 文の最後に `;` (セミコロン) が必要だと理解する

## 所要時間

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

## ドリル

| no | 内容 |
|---|---|
| 01 | ファイルを作って 1 行出力 |
| 02 | `echo` を 4 回使って 4 行出力 |
| 03 | セミコロン忘れエラーを直す |

## 採点

```bash
php scripts/grade.php topics/hello/ch02-write-program/drill/01-create-file/
```

## 関連チャプター

- [`ch01-what-is-php`](../ch01-what-is-php/) — PHP の実行モデル (このチャプターの前提)
- [`ch03-comments`](../ch03-comments/) — コメントの書き方
- [`ch05-variables`](../ch05-variables/) — `echo` に変数を組み合わせる

## スライド

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

<!--
LLM_CONTEXT:
  Lesson 1 / Chapter 2
  目的: PHP コードを書いて echo で出力できる状態にする
  扱わない: 変数 (ch05) / コメント (ch03) / HTML 共存 (ch04)
  読み上げ時間目安: 3 分半〜4 分
-->

# PHP プログラムを書く

Lesson 1 / Chapter 2

---

## PHP コードは必ず `<?php ?>` で囲む

```php
<?php

echo "Hello";

?>
```

- `<?php` でコードが始まる
- `?>` でコードが終わる
- **タグの中だけ** が PHP として実行される

タグの外に書いた文字はそのまま出力される (HTML と混ぜるとき使う・ch04)。

---

## `echo` は「画面に出す」命令

```php
<?php
echo "こんにちは";
?>
```

- `echo` の後に出したい文字列を書く
- 文字列は `"` または `'` で囲む

---

## 文の最後に `;` (セミコロン) が必要

```php
<?php
echo "1 行目";
echo "2 行目";
?>
```

- 1 つの命令の終わりに `;` を打つ
- セミコロンを忘れると `Parse error` で動かない
- これが初学者の **最頻出エラー**

---

## 改行は `\n`

```php
<?php
echo "1 行目\n";
echo "2 行目\n";
?>
```

実行結果:

```
1 行目
2 行目
```

- `"\n"` を文字列の中に入れると、その位置で改行
- ダブルクォート `"` の中だけ有効 (シングルクォートではただの文字)

---

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

✅ `<?php ?>` で囲んだ中に PHP コードを書ける
✅ `echo "..."` で文字列を出力できる
✅ 文の最後に `;` を付けられる
✅ `\n` で改行できる

→ ドリルへ
