# ch07 — 数値と四則演算

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

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

## 本文

# ch07 — 数値と四則演算

## 概要

合計を出す、税込価格を求める、といった **数値計算** はプログラムの基本ピースだ。PHP の数値は大きく **整数 (int)** と **小数 (float)** の 2 種類があり、リテラルの書き方 (`100` か `1.5` か) でどちらの型として扱うかが自動で決まる。型を意識せず書ける一方、結果の型は内部で勝手に切り替わるので「思っていた型と違う」という事故が起きやすい。

四則演算は `+` `-` `*` `/` の 4 つで、加減乗除がそのまま使える。**剰余** は `%` 演算子、**商を整数で得たいとき** は `intdiv()` 関数を使う。PHP 8 系で特に注意すべきは **`/` の挙動** で、`10 / 2` のように割り切れる計算でも **結果は常に float** になる。整数で扱いたい場合は `intdiv(10, 2)` や `(int)(10 / 2)` で明示的に変換する。`%` の方は両辺が整数なら結果も整数のままで、奇数偶数の判定 (`$n % 2`) などに使いやすい。

なお小数同士の計算では **浮動小数点誤差** があり、`0.1 + 0.2` が `0.3` ぴったりにならず `0.30000000000000004` になることがある。本格的な対処 (`bcmath` 利用など) は後の章に譲るが、**`==` で小数同士をぴったり比較してはいけない** という感覚は早めに持っておきたい。

## 学習目標

- 整数・小数を `echo` で出力できる
- `+` `-` `*` `/` で四則演算ができる
- `%` で余りを取れる

## 所要時間

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

## ドリル

| no | 内容 |
|---|---|
| 01 | 2 つの整数を足して出力 |
| 02 | 四則演算 4 つを順に出力 |
| 03 | `%` で余りを出力 |

## 採点

```bash
php scripts/grade.php topics/hello/ch07-numbers/drill/01-add/
```

## 関連チャプター

- [`ch05-variables`](../ch05-variables/) — 変数の基本 (このチャプターの前提)
- [`ch06-strings`](../ch06-strings/) — 文字列との組み合わせ
- [`ch08-input`](../ch08-input/) — 入力された数値を計算する次の章

## スライド

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

<!--
LLM_CONTEXT:
  Lesson 1 / Chapter 7
  目的: 整数・小数を扱い、四則演算 (+ - * /) と余り (%) を使えるようにする
  扱わない: 条件分岐 (ch02-conditional) / 関数 (後続章) / 型変換の詳細 (ch08 で軽く触れる)
  読み上げ時間目安: 4 分
-->

# 数値と四則演算

Lesson 1 / Chapter 7

---

## 数値はクォートで囲まない

```php
<?php
echo 10;
echo "\n";
echo 3.14;
echo "\n";
```

実行結果:

```
10
3.14
```

- 整数 (`10`) も小数 (`3.14`) も **そのまま書く**
- 文字列ではないので `"` で囲まない
- `echo` でそのまま出力できる

---

## 四則演算

```php
<?php
echo 3 + 2;   // 5
echo "\n";
echo 3 - 2;   // 1
echo "\n";
echo 3 * 2;   // 6
echo "\n";
echo 7 / 2;   // 3.5
echo "\n";
```

- `+` 足し算
- `-` 引き算
- `*` 掛け算 (× ではない)
- `/` 割り算 (÷ ではない)

割り算は **整数同士でも小数になることがある** (`7 / 2` → `3.5`)。

---

## 余りは `%`

```php
<?php
echo 7 % 2;   // 1
echo "\n";
echo 10 % 3;  // 1
echo "\n";
echo 9 % 3;   // 0
echo "\n";
```

- `%` は **割ったときの余り**
- `7 ÷ 2 = 3 余り 1` → `7 % 2` は `1`
- `9 ÷ 3 = 3 余り 0` → `9 % 3` は `0`

偶数判定 (`% 2` が `0` なら偶数) などでよく使う。

---

## 変数と組み合わせる

```php
<?php
$a = 10;
$b = 3;

echo $a + $b;  // 13
echo "\n";
echo $a % $b;  // 1
echo "\n";
```

- 変数 (ch05) に数値を入れて計算できる
- 同じ計算を何回も書かずに済む

---

## 計算結果を文字列と一緒に出す

```php
<?php
$total = 3 + 2;
echo "合計は {$total} です\n";
```

実行結果:

```
合計は 5 です
```

- 先に計算結果を変数に入れる
- 文字列の中に `{$total}` で展開 (ch06)

---

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

✅ 整数・小数を `echo` で出力できる
✅ `+ - * /` で四則演算ができる
✅ `%` で余りを取れる
✅ 計算結果を変数に入れて文字列に埋め込める

→ ドリルへ
