# ch01 — PHP とは何か

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

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

## 本文

# ch01 — PHP とは何か

## 概要

PHP は 1995 年に Rasmus Lerdorf によって生まれた **サーバーサイドのプログラミング言語** で、現在は WordPress / Laravel / EC-CUBE など世界中の Web サイトで動いている。Web のしくみと深く結びついているため、最初に「**どこで・どうやって動くか**」を理解することが、この後すべての学習の土台になる。

---

ここでよくある勘違いは「**PHP はブラウザで動く**」というもの。これは間違いで、PHP コードを実行するのは **サーバー側** だ。ブラウザは PHP の結果として生成された HTML を受け取って表示するだけで、`.php` ファイルそのものを開いて実行することはできない。JavaScript と違う最大のポイントがここ。

```mermaid
flowchart LR
    Browser["🌐 ブラウザ"] -->|リクエスト| Server["🖥️ Web サーバー"]
    Server -->|.php 実行| PHP["⚙️ PHP"]
    PHP -->|HTML 生成| Server
    Server -->|HTML 返却| Browser
```

---

この章では、サーバーで動く PHP を **自分のマシンで `php` コマンドを使って直接実行する** ところから始める。サーバーを立てる前に、まず手元のターミナルで「PHP が動いた」という体験を作っておくと、後で `php -S` で Web サーバーを立てた時に「あ、さっきの php コマンドが裏で動いてるんだ」と腹落ちしやすい。

## 学習目標

このチャプターが終わると、次のことが言えるようになる:

- PHP は **サーバーで動くプログラミング言語** である
- ブラウザでは動かない (JavaScript と違う点)
- `.php` ファイルを `php` コマンドで実行できる

## 所要時間

スライド 3 分 + ドリル 5 分 = **8 分**

## 構成

- [`slide.md`](./slide.md) — スライド (5 枚)
- `drill/01-run-php/` — ドリル: `php` コマンドでファイルを実行する
- `drill/02-output-hello/` — ドリル: Hello World を出力する

## 採点

```bash
php scripts/grade.php topics/hello/ch01-what-is-php/drill/01-run-php/
```

## クイズで確かめる

1. **PHP コードはどこで実行される?** (4択)
   - [ ] ブラウザ
   - [x] サーバー
   - [ ] CDN
   - [ ] データベース
   > サーバー側で PHP インタプリタが動き、結果として HTML を返します。ブラウザは HTML を受け取って表示するだけです。

2. **`.php` ファイルはブラウザで直接開ける?** (yesno)
   - [ ] はい
   - [x] いいえ
   > ブラウザは PHP を解釈できません。サーバー経由で実行された結果の HTML だけを受け取ります。

3. **PHP コードを CLI で実行するコマンドは `___` です。** (fill)
   - 答え: `php`
   > `php hello.php` のように `php` コマンドにファイルを渡して実行します。

## このページを AI に聞く

- PHP がブラウザでなく「サーバーで動く」と言われても腹落ちしません。Web サーバーと PHP の関係を、自宅の郵便配達に例えて説明してください
- `php hello.php` でファイルを実行するのと、`php -S` でサーバーを立てて実行するのは、内部で何が違いますか？初学者向けに段階的に教えてください
- JavaScript と PHP の「どこで動くか」を比較したフローチャートを、テキストで書き出してください

## 関連チャプター

- [`ch02-write-program`](../ch02-write-program/) — 実際に `.php` を書いて実行する次の章
- [`ch04-html-mix`](../ch04-html-mix/) — PHP の本来の使い方 (HTML と PHP の共存) を扱う

## スライド

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

<!--
LLM_CONTEXT:
  Lesson 1 / Chapter 1
  目的: PHP とは何かを 3 分で言い切れる状態にする
  扱わない: PHP の歴史 / バージョン論争 / 他言語との詳細比較
  読み上げ時間目安: 2 分半〜3 分
-->

# PHP とは何か

hello / Chapter 1

---

## このチャプターで身につくこと

- PHP は **サーバーで動く** プログラミング言語だと言える
- ブラウザでは動かない (Web ページの裏側で動く位置づけ)
- 自分のマシンで `.php` を `php` コマンドで実行できる
- 「サーバー側で HTML を生成して返す」流れがイメージできる

> 💡 一言要約: PHP は 1995 年生まれ・WordPress / Laravel など世界の Web を支えている言語。最初は「どこで動くか」を理解するのが土台になる。

---

## PHP は **サーバーで動く** プログラミング言語

ブラウザの中では動かない。

サーバー側で動いて、ブラウザに **HTML を送り返す** ために使う。

```
[ブラウザ] → リクエスト → [サーバー: PHP実行] → HTML → [ブラウザに表示]
```

普段は Web サイトの裏側で使うが、このコースでは **まず `.php` ファイルを `php` コマンドで動かす** ところから始める。

---

## ファイルの拡張子は `.php`

```
hello.php
profile.php
calculate.php
```

PHP は **拡張子で「これは PHP ファイル」と認識する**。
`.txt` や拡張子なしでは動かない。

---

## 実行のしかた

ターミナルで:

```bash
$ php hello.php
```

`php` コマンドの後ろに `.php` ファイル名を渡すと、その中身が実行される。

- PHP が入っていれば `php -v` でバージョンが出る
- 出なければ setup 手順に戻る

---

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

✅ PHP は **サーバーで動く** と言える
✅ `.php` を `php` コマンドで実行できる

次は実際に空の `.php` を動かしてみる → ドリルへ
